:root{--bg-app: #17181b;--bg-rail: #1a1b1e;--bg-sidebar: #1e2023;--bg-chat: #26282c;--bg-input: #303237;--bg-modal: #26282c;--bg-hover: #2f3237;--bg-active: #3a3d44;--bg-message-hover: #2b2e33;--text-normal: #d5d8dc;--text-muted: #8b909a;--text-bright: #f4f5f7;--text-link: #4aa8ff;--brand: #5865f2;--brand-hover: #4a56e0;--green: #2dc76d;--danger: #ec4245;--danger-hover: #c5383b;--yellow: #f0b232;--border: rgba(255, 255, 255, .06);--radius: 10px;--radius-sm: 6px;--header-height: 50px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}#root{display:flex;flex-direction:column}.titlebar{height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;background:var(--bg-app);-webkit-user-select:none;user-select:none;-webkit-app-region:drag}.titlebar-title{padding-left:12px;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--text-muted)}.titlebar-buttons{display:flex;height:100%;-webkit-app-region:no-drag}.titlebar-btn{width:44px;height:100%;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);transition:background-color .12s ease,color .12s ease}.titlebar-btn:hover{background:var(--bg-hover);color:var(--text-bright)}.titlebar-btn.close:hover{background:var(--danger);color:#fff}body{font-family:gg sans,Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg-chat);color:var(--text-normal);font-size:14px;overflow:hidden;-webkit-user-select:none;user-select:none}button{font-family:inherit;cursor:pointer;border:none;color:inherit;background:none}input,textarea{font-family:inherit;color:var(--text-normal)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#1a1b1e;border-radius:4px}::-webkit-scrollbar-track{background:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:4px;font-weight:500;font-size:14px;transition:background-color .15s ease}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}.btn-ghost{background:transparent;color:var(--text-normal)}.btn-ghost:hover{background:var(--bg-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-block{width:100%}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.field label{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--text-muted);letter-spacing:.02em}.input{width:100%;padding:10px 12px;border-radius:4px;background:var(--bg-rail);border:1px solid transparent;color:var(--text-bright);font-size:15px;outline:none;-webkit-user-select:text;user-select:text}.input:focus{border-color:var(--brand)}.auth-screen{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:24px;position:relative;overflow:hidden;background:radial-gradient(60% 55% at 18% 12%,rgba(88,101,242,.5) 0%,transparent 60%),radial-gradient(55% 50% at 85% 88%,rgba(64,78,237,.42) 0%,transparent 62%),linear-gradient(160deg,#23252b,#17181b 55%,#121316)}.auth-mark{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;color:#fff;background:linear-gradient(145deg,var(--brand) 0%,#7d87ff 100%);box-shadow:0 10px 24px #5865f273,inset 0 1px #ffffff40}.auth-card{width:400px;max-width:92vw;padding:28px;border-radius:16px;background:#26282cd1;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);box-shadow:0 24px 60px #00000080}.auth-title{font-size:22px;font-weight:700;color:var(--text-bright);text-align:center;letter-spacing:-.2px}.auth-subtitle{text-align:center;color:var(--text-muted);font-size:14px;margin-top:6px;margin-bottom:22px}.auth-card .field{margin-bottom:14px}.auth-card .input{height:42px;border-radius:8px;background:#17181bbf;border:1px solid rgba(255,255,255,.07)}.auth-card .input:focus{border-color:var(--brand);outline:none}.auth-card .btn-block{height:44px;margin-top:8px;border-radius:8px;font-size:15px}.input-with-action{position:relative}.input-with-action .input{width:100%;padding-right:40px}.input-with-action .input[readonly]{color:var(--text-muted);cursor:default}.input-action{position:absolute;top:50%;right:6px;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);color:var(--text-muted);background:transparent}.input-action:hover{color:var(--text-bright);background:var(--bg-hover)}.auth-error{background:#ec42451f;border:1px solid rgba(236,66,69,.5);color:#f5c2c3;padding:10px 12px;border-radius:8px;margin-bottom:16px;font-size:13px}.auth-switch{margin-top:18px;text-align:center;font-size:13px;color:var(--text-muted)}.auth-switch button{color:var(--text-link);font-size:13px}.auth-switch button:hover{text-decoration:underline}.update-gate{width:340px;max-width:92vw;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.update-gate-title{font-size:17px;font-weight:600;color:var(--text-bright)}.update-gate-note{font-size:13px;color:var(--text-muted)}.update-progress{width:100%;height:6px;margin-top:14px;border-radius:999px;background:#ffffff1a;overflow:hidden}.update-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--brand) 0%,#8b93ff 100%);transition:width .25s ease}.update-progress-fill.indeterminate{width:35%!important;animation:update-slide 1.1s ease-in-out infinite}@keyframes update-slide{0%{transform:translate(-100%)}to{transform:translate(320%)}}.app{display:flex;flex:1;min-height:0;background:var(--bg-app);padding:8px;gap:8px}.rail{width:72px;background:var(--bg-rail);display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:8px;flex-shrink:0}.rail-icon{width:48px;height:48px;border-radius:24px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;transition:border-radius .15s ease}.sidebar{width:240px;background:var(--bg-sidebar);display:flex;flex-direction:column;flex-shrink:0;border-radius:var(--radius);overflow:hidden}.sidebar-header{height:var(--header-height);display:flex;align-items:center;padding:0 18px;font-weight:700;font-size:15px;letter-spacing:.01em;color:var(--text-bright);border-bottom:1px solid var(--border);flex-shrink:0}.channels{flex:1;overflow-y:auto;padding:12px 8px}.channel-group-label{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 4px;margin-top:18px;font-size:12px;font-weight:700;text-transform:uppercase;color:var(--text-muted);letter-spacing:.02em}.channels>.channel-group-label:first-child{margin-top:0}.channel-group-label button{color:var(--text-muted);font-size:18px;line-height:1}.channel-group-label button:hover{color:var(--text-bright)}.channel-item{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-muted);font-size:15px;cursor:pointer;position:relative;transition:background-color .12s ease,color .12s ease}.channel-item:hover{background:var(--bg-hover);color:var(--text-normal)}.channel-item.active{background:var(--bg-active);color:var(--text-bright)}.channel-item .hash{font-size:18px;color:var(--text-muted)}.channel-item .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-item .del{opacity:0;color:var(--text-muted)}.channel-item:hover .del{opacity:1}.channel-item .del:hover{color:var(--danger)}.voice-participants{margin:2px 0 6px 24px;display:flex;flex-direction:column;gap:2px}.voice-participant{display:flex;align-items:center;gap:8px;padding:4px 8px;font-size:14px;color:var(--text-muted);border-radius:4px}.voice-participant .avatar{width:24px;height:24px;border-radius:12px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.voice-participant.speaking .avatar{box-shadow:0 0 0 2px var(--green)}.voice-participant .icons{display:flex;gap:4px;font-size:12px}.user-panel{height:56px;background:#00000038;border-top:1px solid var(--border);display:flex;align-items:center;padding:0 8px;gap:8px;flex-shrink:0}.user-panel .avatar{width:32px;height:32px;border-radius:16px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.user-panel .meta{flex:1;overflow:hidden}.user-panel .meta .name{font-weight:600;color:var(--text-bright);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-panel .meta .status{font-size:12px;color:var(--text-muted)}.user-panel .controls{display:flex;gap:2px}.icon-btn{width:32px;height:32px;border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:16px}.icon-btn:hover{background:var(--bg-hover);color:var(--text-normal)}.icon-btn.active{color:var(--danger)}.members{width:220px;flex-shrink:0;background:var(--bg-sidebar);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}.members-header{height:var(--header-height);display:flex;align-items:center;padding:0 18px;font-weight:700;color:var(--text-bright);border-bottom:1px solid var(--border);flex-shrink:0}.members-list{flex:1;overflow-y:auto;padding:8px}.members-group{font-size:12px;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);font-weight:700;padding:12px 8px 4px}.member-row{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:var(--radius-sm);cursor:default;transition:background-color .12s ease}.member-row:hover{background:var(--bg-hover)}.member-row.offline{opacity:.45}.member-avatar{position:relative;flex-shrink:0}.member-avatar .avatar{width:32px;height:32px;border-radius:16px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px}.status-dot{position:absolute;right:-2px;bottom:-2px;width:12px;height:12px;border-radius:50%;border:2px solid var(--bg-sidebar)}.status-dot.online{background:var(--green)}.status-dot.away{background:var(--yellow)}.status-dot.offline{background:#747a85}.member-name{font-size:14px;color:var(--text-normal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg-chat);border-radius:var(--radius);overflow:hidden}.content-header{height:var(--header-height);display:flex;align-items:center;gap:8px;padding:0 18px;border-bottom:1px solid var(--border);flex-shrink:0;font-weight:600;color:var(--text-bright)}.content-header .hash{color:var(--text-muted);font-size:20px}.messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column}.messages-list{display:flex;flex-direction:column;gap:2px;margin-top:auto}.messages-list.empty{margin-bottom:auto}.messages-list>.message:not(.grouped){margin-top:14px}.messages-list>.message:not(.grouped):first-child{margin-top:0}.message{display:flex;gap:12px;padding:4px 8px;border-radius:4px}.message{position:relative}.message:hover{background:var(--bg-message-hover)}.msg-actions{position:absolute;top:-10px;right:12px;display:flex;gap:2px;padding:2px;border-radius:var(--radius-sm);background:var(--bg-modal);border:1px solid var(--border);box-shadow:0 2px 8px #0000004d;opacity:0;transition:opacity .12s ease}.message:hover .msg-actions{opacity:1}.msg-action{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:4px;color:var(--text-muted)}.msg-action:hover{background:var(--bg-hover);color:var(--text-bright)}.msg-action.danger:hover{color:var(--danger)}.msg-edited{margin-left:5px;font-size:10px;color:var(--text-muted);-webkit-user-select:none;user-select:none}.msg-edit{display:flex;flex-direction:column;gap:4px}.msg-edit-input{width:100%;padding:8px 10px;border-radius:var(--radius-sm);background:var(--bg-input);border:1px solid var(--brand);outline:none;color:var(--text-bright);font-size:15px;font-family:inherit;line-height:1.4;resize:none;max-height:200px;overflow-y:auto;-webkit-user-select:text;user-select:text}.msg-edit-hint{font-size:11px;color:var(--text-muted)}.msg-edit-hint button{color:var(--text-link);font-size:11px}.msg-edit-hint button:hover{text-decoration:underline}.msg-delete{position:absolute;top:2px;right:8px;opacity:0;color:var(--text-muted);font-size:14px;padding:4px 6px;border-radius:var(--radius-sm)}.message:hover .msg-delete{opacity:1}.msg-delete:hover{color:var(--danger);background:var(--bg-hover)}.message .avatar{width:32px;height:32px;border-radius:16px;font-size:13px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.message .body{min-width:0}.message .head{display:flex;align-items:baseline;gap:8px}.message .author{font-weight:600;color:var(--text-bright)}.message .time{font-size:11px;color:var(--text-muted)}.message .text{color:var(--text-normal);white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text}.message.grouped{padding-top:1px;padding-bottom:1px}.message.grouped .grouped-gutter{width:32px;flex-shrink:0;text-align:right;padding-right:4px;font-size:10px;color:var(--text-muted);opacity:0;align-self:center}.message.grouped:hover .grouped-gutter{opacity:1}.load-more{align-self:center;margin-bottom:8px;padding:4px 0;font-size:13px;color:var(--text-muted)}.chat-start{align-self:center;margin-bottom:10px;padding:4px 0;font-size:12px;color:var(--text-muted)}.chat-empty{margin:auto;color:var(--text-muted);text-align:center}.typing-indicator{height:20px;padding:0 20px;font-size:13px;color:var(--text-muted);font-style:italic;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.composer{padding:0 16px 24px;position:relative}.mention-list{position:absolute;left:16px;right:16px;bottom:calc(100% - 8px);z-index:5;padding:6px;border-radius:var(--radius);background:var(--bg-modal);border:1px solid var(--border);box-shadow:0 8px 28px #00000073;animation:mention-in .12s ease-out}.mention-hint{padding:4px 8px 6px;font-size:11px;font-weight:700;text-transform:uppercase;color:var(--text-muted)}.mention-item{width:100%;display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);color:var(--text-normal);font-size:14px;text-align:left}.mention-item.active{background:var(--bg-hover);color:var(--text-bright)}.mention-avatar{width:24px;height:24px;border-radius:12px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.mention-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes mention-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.composer-inner{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;display:flex;align-items:center;transition:border-color .15s ease}.composer-inner:focus-within{border-color:var(--brand)}.composer-inner{gap:10px;align-items:flex-end}.composer-attach{display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);flex-shrink:0}.composer-attach:hover:not(:disabled){color:var(--text-bright)}.composer-attach:disabled{opacity:.5;cursor:default}.composer-input{flex:1;background:transparent;border:none;outline:none;font-size:15px;font-family:inherit;line-height:1.4;color:var(--text-bright);-webkit-user-select:text;user-select:text;resize:none;padding:0;max-height:160px;overflow-y:auto}.voice-stage{position:relative;flex:1;display:flex;flex-direction:column;min-height:0}.stage-grid{flex:1;display:grid;gap:12px;padding:16px;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));align-content:center;justify-content:center;overflow-x:hidden;overflow-y:auto}.stage-tile{position:relative;background:var(--bg-sidebar);border-radius:var(--radius);aspect-ratio:16 / 9;display:flex;align-items:center;justify-content:center;overflow:hidden;border:2px solid transparent}.stage-tile.speaking{border-color:var(--green)}.stage-tile video{width:100%;height:100%;object-fit:contain;background:#000}.stage-tile .tile-avatar{width:80px;height:80px;border-radius:40px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700}.stage-tile .tile-label{position:absolute;left:8px;bottom:8px;background:#0009;padding:3px 8px;border-radius:4px;font-size:13px;color:#fff;display:flex;align-items:center;gap:6px}.stage-grid.focused{padding:0;display:block}.stage-grid.focused .stage-tile{width:100%;height:100%;aspect-ratio:auto;border-radius:0}.stage-tile.screen{cursor:pointer;background:#0b0b0d}.viewers-badge{position:absolute;top:8px;left:8px;z-index:2;background:#0009;color:#fff;font-size:12px;padding:3px 8px;border-radius:6px}.stage-tile.self{cursor:default}.self-screen-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#0000008c;text-align:center;padding:16px}.self-screen-title{font-size:18px;font-weight:700;color:#fff}.self-screen-sub{font-size:12px;color:var(--text-muted);max-width:260px}.tile-preview{width:100%;height:100%;object-fit:contain;filter:brightness(.6)}.tile-preview-empty{color:var(--text-muted);font-size:13px}.tile-watch-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#00000059}.tile-controls{position:absolute;top:8px;right:8px;display:flex;gap:6px;opacity:0;transition:opacity .15s ease}.stage-tile.screen:hover .tile-controls{opacity:1}.tile-btn{width:30px;height:30px;border-radius:6px;background:#0009;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px}.tile-btn:hover{background:#000000d9}.tile-label.static{position:static;background:transparent}.tile-volume{position:absolute;bottom:8px;right:8px;display:flex;align-items:center;gap:6px;background:#0009;padding:4px 8px;border-radius:6px;opacity:.85;transition:opacity .15s ease}.stage-tile.screen:hover .tile-volume{opacity:1}.tile-volume input[type=range]{width:90px;accent-color:var(--brand)}.tile-volume .vol-value{font-size:11px;color:#fff;min-width:34px;text-align:right}.voice-toolbar{position:absolute;left:0;right:0;bottom:0;height:64px;background:transparent;display:flex;align-items:center;justify-content:center;gap:12px;flex-shrink:0;z-index:3;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .3s ease}.voice-toolbar.hidden{transform:translateY(140%);opacity:0;pointer-events:none}.toolbar-btn{width:48px;height:48px;border-radius:24px;background:var(--bg-active);color:var(--text-bright);display:flex;align-items:center;justify-content:center;font-size:18px}.toolbar-btn:hover{background:var(--bg-hover)}.toolbar-btn.danger{background:var(--danger);color:#fff}.toolbar-btn.enabled{background:var(--green);color:#fff}.toolbar-btn.muted{background:var(--danger);color:#fff}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.modal{width:460px;max-width:92vw;max-height:86vh;background:var(--bg-modal);border-radius:var(--radius);padding:24px;overflow-y:auto}.modal-title{font-size:20px;font-weight:700;color:var(--text-bright);margin-bottom:16px}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.segmented{display:flex;gap:8px;margin-bottom:18px}.segmented button{flex:1;padding:10px;border-radius:4px;background:var(--bg-rail);color:var(--text-muted);font-weight:600}.segmented button.active{background:var(--brand);color:#fff}.admin-tabs{display:flex;gap:8px;margin-bottom:16px;border-bottom:1px solid var(--bg-rail)}.admin-tabs button{padding:8px 12px;color:var(--text-muted);font-weight:600;border-bottom:2px solid transparent}.admin-tabs button.active{color:var(--text-bright);border-bottom-color:var(--brand)}.list-row{display:flex;align-items:center;gap:10px;padding:10px 8px;border-radius:4px}.list-row:hover{background:var(--bg-hover)}.list-row .grow{flex:1;min-width:0}.list-row .grow .primary{color:var(--text-bright);font-weight:600}.list-row .grow .secondary{color:var(--text-muted);font-size:12px}.badge{font-size:11px;font-weight:700;text-transform:uppercase;padding:2px 6px;border-radius:4px;background:var(--brand);color:#fff}.badge.admin{background:var(--brand)}.small-btn{padding:6px 10px;border-radius:4px;font-size:13px;font-weight:600}.picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}.picker-modal{width:min(1120px,96vw);max-height:88vh;background:var(--bg-modal);border-radius:var(--radius);padding:20px 24px;display:flex;flex-direction:column}.picker-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.picker-scroll{overflow-y:auto;margin-top:12px;padding-right:4px}.picker-section{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);margin:14px 2px 8px}.picker-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-top:4px}.picker-tabs button{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:14px;font-weight:600;padding:8px 12px;cursor:pointer}.picker-tabs button:hover{color:var(--text-normal)}.picker-tabs button.active{color:var(--text-bright);border-bottom-color:var(--brand)}.device-list{display:flex;flex-direction:column;gap:6px;padding:4px 2px}.device-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-input);color:var(--text-bright);font-size:14px;cursor:pointer;text-align:left}.device-row:hover:not(:disabled){background:var(--bg-hover)}.device-row:disabled{opacity:.6;cursor:default}.device-state{font-size:12px;color:var(--text-muted)}.device-state.online{color:var(--green)}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.picker-card{display:flex;flex-direction:column;gap:8px;padding:8px;border-radius:var(--radius);background:var(--bg-rail);border:2px solid transparent;transition:border-color .12s ease,background-color .12s ease;text-align:left}.picker-card:hover{border-color:var(--brand);background:var(--bg-hover)}.picker-thumb{width:100%;aspect-ratio:16 / 9;background:#000;border-radius:var(--radius-sm);overflow:hidden;display:flex;align-items:center;justify-content:center}.picker-thumb img{width:100%;height:100%;object-fit:contain}.picker-name{font-size:13px;color:var(--text-normal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--bg-rail);color:var(--text-bright);padding:12px 20px;border-radius:var(--radius);box-shadow:0 4px 16px #0006;z-index:200;font-size:14px}.hint{color:var(--text-muted);font-size:13px;margin-top:6px}.ctx-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300}.ctx-menu{position:fixed;z-index:301;width:244px;background:var(--bg-rail);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #00000080;padding:8px}.ctx-title{font-weight:700;color:var(--text-bright);padding:6px 8px 8px;border-bottom:1px solid var(--border);margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctx-vol{padding:6px 8px}.ctx-vol-head{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted);margin-bottom:6px}.ctx-vol-val{color:var(--text-bright);font-weight:600}.ctx-vol input[type=range]{width:100%;accent-color:var(--brand)}.ctx-sep{height:1px;background:var(--border);margin:6px 0}.ctx-item{width:100%;display:flex;align-items:center;gap:8px;text-align:left;padding:8px;border-radius:var(--radius-sm);color:var(--text-normal);font-size:14px}.ctx-item svg{flex-shrink:0}.ctx-item:hover{background:var(--bg-hover)}.ctx-item.danger{color:var(--danger)}.ctx-item.danger:hover{background:#ec42451f}.ctx-hint{padding:4px 8px 8px;font-size:12px;color:var(--text-muted)}.icon-btn,.toolbar-btn,.tile-btn,.channel-group-label button,.channel-item .del,.msg-delete{display:inline-flex;align-items:center;justify-content:center}.hash svg,.status svg,.tile-label svg,.viewers-badge svg,.self-screen-title svg,.ctx-vol-head svg,.segmented button svg{flex-shrink:0;vertical-align:-.15em}.ic-danger{color:var(--danger)}.stream-badge{position:absolute;top:8px;right:8px;z-index:2;background:var(--danger);color:#fff;font-size:10px;font-weight:800;letter-spacing:.5px;padding:2px 6px;border-radius:4px;line-height:1.2}.stream-badge.sm{position:static;padding:1px 5px;font-size:9px}.stage-tile .tile-label{max-width:calc(100% - 16px)}.tile-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-icons{display:flex;align-items:center;gap:4px;flex-shrink:0}.viewers-badge{display:inline-flex;align-items:center;gap:4px}.self-screen-title{display:flex;align-items:center;justify-content:center;gap:8px}.user-panel .status{display:flex;align-items:center;gap:4px}.voice-participant .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voice-participant .icons{align-items:center}.text.md{overflow-wrap:anywhere}.text.md strong{font-weight:700;color:var(--text-bright)}.text.md em{font-style:italic}.text.md del{text-decoration:line-through;opacity:.75}.text.md .md-link{color:var(--brand);text-decoration:none;cursor:pointer}.text.md .md-link:hover{text-decoration:underline}.md-code-inline{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.88em;background:#00000047;border-radius:4px;padding:1px 4px}.md-code-block{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85em;background:#00000052;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;margin:4px 0;white-space:pre-wrap;overflow-x:auto}.md-img{display:block;max-width:min(400px,100%);max-height:300px;width:auto;height:auto;border-radius:var(--radius-sm);margin:4px 0;cursor:pointer;object-fit:contain}.modal-wide{width:720px}.settings-layout{display:flex;gap:20px;align-items:stretch;min-height:600px}.settings-tabs{display:flex;flex-direction:column;gap:4px;width:200px;flex-shrink:0}.settings-tab{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);color:var(--text-muted);font-weight:600;font-size:14px;text-align:left}.settings-tab:hover{background:var(--bg-hover);color:var(--text-normal)}.settings-tab.active{background:var(--bg-active);color:var(--text-bright)}.settings-tab.logout{margin-top:auto;padding-top:9px;border-top:1px solid var(--border);border-radius:0 0 var(--radius-sm) var(--radius-sm);color:var(--danger)}.settings-tab.logout:hover{background:#ec42451f;color:var(--danger)}.settings-content{flex:1;min-width:0;overflow-y:auto;max-height:70vh}.settings-content .field:last-child{margin-bottom:0}.account-user{display:flex;align-items:center;gap:8px;color:var(--text-bright);font-weight:600}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#000000d9;display:flex;align-items:center;justify-content:center;overflow:hidden;animation:lb-in .16s ease-out}.lightbox-img{max-width:92vw;max-height:92vh;border-radius:4px;box-shadow:0 12px 48px #0009;cursor:zoom-in;will-change:transform;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.lightbox-img.zoomed{cursor:grab}.lightbox-img.dragging{cursor:grabbing}.lightbox-toolbar{position:fixed;top:14px;right:14px;z-index:1;display:flex;align-items:center;gap:4px;padding:5px 6px;border-radius:999px;background:#0009;border:1px solid rgba(255,255,255,.1)}.lightbox-scale{padding:0 8px;font-size:12px;font-weight:700;color:#d3d6db;min-width:46px;text-align:center;-webkit-user-select:none;user-select:none}.lightbox-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:15px;color:#d3d6db}.lightbox-btn:hover{background:#ffffff1f;color:#fff}@keyframes lb-in{0%{opacity:0}to{opacity:1}}.notify-modes{display:flex;flex-direction:column;gap:6px}.notify-mode{display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:left;padding:10px 12px;border-radius:var(--radius-sm);background:var(--bg-rail);border:1px solid transparent}.notify-mode:hover{background:var(--bg-hover)}.notify-mode.active{border-color:var(--brand);background:#5865f21f}.notify-mode-label{font-size:14px;font-weight:600;color:var(--text-bright)}.notify-mode-hint{font-size:12px;color:var(--text-muted)}.hint.danger{color:var(--danger)}.channel-item.muted .name{opacity:.55}.channel-muted-icon{color:var(--text-muted);flex-shrink:0}.channel-mentions-only{flex-shrink:0;font-size:12px;font-weight:800;color:var(--yellow)}.md-mention{padding:0 2px;border-radius:3px;font-weight:600;color:#c3c9ff;background:#5865f238}.md-mention.me{color:#fff0cf;background:#f0b23242}.ctx-submenu-anchor{position:relative}.ctx-item.active,.ctx-item.selected{background:var(--bg-hover)}.ctx-item .grow{flex:1}.ctx-item-value{font-size:12px;color:var(--text-muted);white-space:nowrap}.ctx-check{width:12px;flex-shrink:0;color:var(--brand);font-weight:700}.ctx-submenu{position:absolute;top:-4px;left:100%;margin-left:4px;padding:4px;border-radius:var(--radius-sm);background:var(--bg-modal);border:1px solid var(--border);box-shadow:0 8px 24px #00000073;z-index:1;animation:ctx-sub-in .14s ease-out}.ctx-submenu.flipped{left:auto;right:100%;margin-left:0;margin-right:4px}@keyframes ctx-sub-in{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.segmented button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.keybind-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--border)}.keybind-row:last-child{border-bottom:none}.keybind-label{flex:1;font-size:14px;color:var(--text-normal);text-transform:none;letter-spacing:0}.keybind-value{min-width:160px;padding:7px 10px;border-radius:var(--radius-sm);background:var(--bg-input);border:1px solid var(--border);color:var(--text-bright);font-size:13px;font-weight:600;text-align:center}.keybind-value:hover{border-color:var(--brand)}.keybind-value.capturing{border-color:var(--brand);color:var(--brand)}.keybind-clear{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);color:var(--text-muted);flex-shrink:0}.keybind-clear:hover:not(:disabled){color:var(--danger);background:var(--bg-hover)}.keybind-clear:disabled{opacity:.35;cursor:default}.content.voice{background:#000}.content.voice .content-header{background:transparent;border-bottom:none;position:relative;z-index:3}.sidebar,.members{transition:width .28s cubic-bezier(.4,0,.2,1),opacity .22s ease,margin .28s cubic-bezier(.4,0,.2,1)}.sidebar.collapsed{width:0;opacity:0;margin-right:-8px;pointer-events:none}.members.collapsed{width:0;opacity:0;margin-left:-8px;pointer-events:none}.pane-toggle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);color:var(--text-muted);flex-shrink:0}.pane-toggle:hover{background:var(--bg-hover);color:var(--text-bright)}.pane-toggle svg{transition:transform .28s cubic-bezier(.4,0,.2,1)}.pane-toggle.flip svg{transform:rotate(180deg)}.new-messages-bar{position:relative;z-index:2;margin:0 16px -6px;padding:5px 12px;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--brand);color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:8px;animation:nm-in .18s ease-out}.new-messages-bar:hover{filter:brightness(1.08)}.nm-arrow{transform:rotate(90deg)}@keyframes nm-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app.narrow{--drawer-w: min(300px, 82vw);padding:0;gap:0;position:relative;overflow:hidden}.app.narrow .content{border-radius:0}.app.narrow .sidebar,.app.narrow .members{position:absolute;top:0;bottom:0;z-index:30;width:var(--drawer-w);max-width:none;border-radius:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 0 32px #00000080}.app.narrow .sidebar{left:0;transform:translate(calc(-1 * var(--drawer-w) + var(--drawer-shift, 0px)))}.app.narrow .members{right:0;transform:translate(calc(var(--drawer-w) + var(--drawer-shift, 0px)))}.app.narrow:not(.dragging) .sidebar,.app.narrow:not(.dragging) .members,.app.narrow:not(.dragging) .drawer-backdrop{transition:transform .22s ease,opacity .22s ease}.app.narrow .drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;background:#000;opacity:calc(var(--drawer-dim, 0) * .6);pointer-events:none}.app.narrow.drawer-left .drawer-backdrop,.app.narrow.drawer-right .drawer-backdrop{pointer-events:auto}.app.narrow .sidebar.collapsed,.app.narrow .members.collapsed{width:var(--drawer-w);opacity:1;margin:0;pointer-events:auto}@media (max-width: 900px){.channel-item,.member-row{padding-top:10px;padding-bottom:10px}.content-header{padding-left:8px;padding-right:8px}.pane-toggle{width:36px;height:36px}.composer{padding-bottom:calc(12px + env(safe-area-inset-bottom))}}
