:root{--bg:#313338;--panel:#2b2d31;--rail:#1e1f22;--top:#2b2d31;--muted:#949ba4;--text:#dbdee1;--strong:#f2f3f5;--accent:#5865f2;--danger:#da373c;--hover:#35373c;--input:#383a40;--green:#23a55a;--yellow:#f0b232;--main:var(--bg);--sidebar:var(--panel);--popover:var(--panel);--brand:var(--accent);--bg-secondary:var(--panel);--header-primary:var(--strong);--header-secondary:var(--muted);--input-bg:var(--input);--offline:#80848e}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden}body{font:14px Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}button{color:inherit}.splash,.auth{height:100%;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at 20% 10%,#3c458a,var(--rail) 45%)}.brandmark{width:58px;height:58px;border-radius:18px;background:var(--accent);display:grid;place-items:center;font-size:30px;font-weight:900;color:#fff;margin:auto}.auth-card{width:min(450px,92vw);background:var(--panel);padding:32px;border-radius:8px;box-shadow:0 18px 60px #0007;text-align:left}.auth-card h1{text-align:center;margin:0}.auth-card p{text-align:center;color:var(--muted)}label{display:block;text-transform:uppercase;font-size:12px;font-weight:700;color:#b5bac1;margin:16px 0 7px}.field{width:100%;background:var(--rail);border:0;border-radius:4px;padding:12px;color:var(--strong);outline:none}.primary{border:0;background:var(--accent);border-radius:4px;padding:12px 16px;font-weight:700;cursor:pointer}.full{width:100%;margin-top:18px}.link{background:none;border:0;color:#00a8fc;cursor:pointer;padding:0}.error{background:#8b262b;padding:10px;border-radius:5px;margin-top:12px}.shell{height:100%;display:grid;grid-template-columns:72px 240px minmax(360px,1fr) 240px;grid-template-rows:48px minmax(0,1fr);grid-template-areas:"rail sidebar header header" "rail sidebar main members"}.rail{grid-area:rail;background:var(--rail);padding:12px 8px;overflow-y:auto}.server-btn{width:48px;height:48px;border:0;border-radius:50%;background:var(--panel);display:grid;place-items:center;margin:0 auto 8px;font-weight:800;font-size:17px;cursor:pointer;transition:.16s}.server-btn:hover,.server-btn.active{border-radius:16px;background:var(--accent);color:white}.server-btn.home{background:var(--accent)}.sidebar{grid-area:sidebar;background:var(--panel);display:flex;flex-direction:column;min-height:0}.sidebar-title{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-weight:800;box-shadow:0 1px #1e1f22}.sidebar-scroll{padding:10px 8px;overflow:auto;flex:1}.category{font-size:11px;text-transform:uppercase;font-weight:800;color:var(--muted);margin:15px 8px 5px}.channel{display:flex;align-items:center;gap:7px;width:100%;border:0;background:none;padding:7px 9px;border-radius:4px;color:var(--muted);cursor:pointer;text-align:left}.channel:hover,.channel.active{background:var(--hover);color:var(--strong)}.channel .hash{font-size:20px}.voice-users{margin-left:28px}.mini-user{padding:5px;color:var(--muted)}.userbar{height:54px;background:#232428;display:flex;align-items:center;gap:8px;padding:7px}.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(145deg,var(--accent),color-mix(in srgb,var(--accent) 66%,var(--strong)));display:grid;place-items:center;color:white;font-weight:800;flex:none;position:relative}.status-dot{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;background:var(--green);border:3px solid var(--panel)}.user-meta{min-width:0;flex:1}.user-meta strong,.user-meta small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-meta small{color:var(--muted)}.icon-btn{border:0;background:none;border-radius:4px;padding:7px;cursor:pointer}.icon-btn:hover{background:var(--hover)}.header{grid-area:header;background:var(--top);display:flex;align-items:center;padding:0 14px;box-shadow:0 1px #26272b;z-index:2}.header h2{font-size:15px;margin:0}.topic{margin-left:12px;padding-left:12px;border-left:1px solid #4e5058;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{margin-left:auto;display:flex;gap:4px}.search{background:var(--rail);border:0;border-radius:4px;padding:7px 9px;color:white;width:180px}.main{grid-area:main;background:var(--bg);display:flex;min-height:0;flex-direction:column}.welcome{margin:auto;text-align:center;color:var(--muted)}.welcome .brandmark{margin-bottom:12px}.messages{flex:1;overflow:auto;padding:16px 0}.message{display:grid;grid-template-columns:56px minmax(0,1fr);padding:4px 16px;position:relative}.message:hover{background:#2e3035}.message:hover .msg-actions{display:flex}.message .avatar{margin-left:8px;margin-top:2px}.msg-head strong{color:var(--strong);margin-right:8px}.time,.edited{font-size:11px;color:var(--muted)}.content{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.4}.reply-preview{border-left:2px solid #4e5058;color:var(--muted);padding-left:8px;font-size:12px;margin-bottom:3px}.msg-actions{display:none;position:absolute;right:18px;top:-16px;background:var(--panel);border:1px solid #1e1f22;border-radius:6px;overflow:hidden}.msg-actions button{border:0;background:none;padding:7px;cursor:pointer}.reactions{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.reaction{border:1px solid #4e5058;background:var(--panel);border-radius:8px;padding:3px 7px;cursor:pointer}.reaction.mine{border-color:var(--accent);background:#3d4270}.composer-wrap{padding:0 16px 18px}.replying{background:var(--panel);padding:8px 12px;border-radius:8px 8px 0 0;color:var(--muted);display:none}.composer{display:flex;align-items:end;background:var(--input);border-radius:8px;padding:7px}.composer textarea{border:0;background:none;color:var(--text);resize:none;outline:none;max-height:160px;min-height:28px;line-height:28px;flex:1}.typing{height:18px;font-size:12px;color:var(--muted);padding:2px 4px}.members{grid-area:members;background:var(--panel);padding:12px 8px;overflow:auto}.member{display:flex;align-items:center;gap:9px;padding:7px;border-radius:4px;color:var(--muted)}.member:hover{background:var(--hover)}.member.offline{opacity:.45}.modal-backdrop{position:fixed;inset:0;background:#0009;display:grid;place-items:center;z-index:20}.modal{width:min(500px,92vw);max-height:86vh;overflow:auto;background:var(--panel);border-radius:10px;padding:24px;box-shadow:0 20px 80px #000}.modal h2{margin-top:0}.row{display:flex;gap:10px}.row>*{flex:1}.close{float:right}.friends{padding:24px;overflow:auto}.friend{display:flex;align-items:center;gap:12px;padding:12px;border-top:1px solid #3f4147}.friend .actions{margin-left:auto}.voice-stage{position:absolute;inset:48px 240px 0 312px;background:#111214;z-index:10;display:flex;flex-direction:column}.voice-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;padding:20px;overflow:auto}.video-tile{background:#1e1f22;border-radius:12px;display:grid;place-items:center;min-height:180px;overflow:hidden;position:relative}.video-tile video{width:100%;height:100%;object-fit:cover}.video-label{position:absolute;left:10px;bottom:8px;background:#0009;padding:4px 7px;border-radius:4px}.callbar{height:68px;display:flex;justify-content:center;align-items:center;gap:10px}.callbar button{width:44px;height:44px;border-radius:50%;border:0;background:#3f4147}.callbar .hangup{background:var(--danger)}@media(max-width:1000px){.shell{grid-template-columns:64px 220px 1fr;grid-template-areas:"rail sidebar header" "rail sidebar main"}.members{display:none}.voice-stage{right:0;left:284px}}/* Mobile rule moved to assets/css/mobile.css. */

.hidden{display:none!important}

.user-avatar-button{border:0;background:none;padding:0;border-radius:50%;cursor:pointer;flex:none}.user-avatar-button:hover{filter:brightness(1.12)}
.member,[data-profile-user]:not(.profile-card),.message .avatar,.msg-head strong{cursor:pointer}
.presence-popover{position:absolute;left:7px;bottom:60px;width:280px;background:#111214;border:1px solid #08090a;border-radius:8px;padding:8px;box-shadow:0 14px 40px #000b;z-index:50}.userbar{position:relative}.presence-title{padding:8px 9px;font-weight:800;color:var(--strong)}.presence-popover>button{width:100%;display:flex;align-items:center;gap:10px;border:0;background:none;padding:8px 9px;border-radius:4px;text-align:left;cursor:pointer}.presence-popover>button:hover{background:var(--accent);color:#fff}.presence-popover>button span{flex:1}.presence-popover>button strong,.presence-popover>button small{display:block}.presence-popover>button small{color:var(--muted);font-size:11px}.presence-popover>button:hover small{color:#e7e9ff}.presence-icon{width:11px;height:11px;border-radius:50%;display:inline-block;flex:none;background:var(--green)}.presence-icon.idle{background:var(--yellow)}.presence-icon.dnd{background:var(--danger)}.presence-icon.offline{background:#80848e}.presence-separator{height:1px;background:#3f4147;margin:7px 0}.presence-popover label{margin:8px 8px 5px}.custom-status-row{display:flex;gap:6px;padding:0 7px 7px}.custom-status-row input{min-width:0;flex:1;background:var(--input);border:0;border-radius:4px;color:var(--strong);padding:8px}.custom-status-row .primary{padding:8px}.clear-custom,.view-my-profile{color:var(--text)!important}
.profile-card{margin:-24px}.profile-banner{height:110px;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 68%,var(--strong)));border-radius:10px 10px 0 0}.profile-avatar-wrap{height:0;position:relative;top:-42px;margin-left:22px}.profile-avatar-wrap .avatar.large{width:82px;height:82px;border:6px solid var(--panel);font-size:30px}.profile-avatar-wrap .avatar.large .status-dot{width:20px;height:20px;border-width:4px}.profile-body{padding:50px 24px 24px}.profile-body h2{margin:0 0 6px;font-size:24px}.profile-presence{display:flex;align-items:center;gap:7px;color:var(--muted)}.profile-custom-status{margin:16px 0;background:var(--settings-inner-bg);padding:10px 12px;border-radius:6px}.profile-section{border-top:1px solid var(--settings-border);margin-top:16px;padding-top:13px}.profile-section h3{font-size:12px;text-transform:uppercase;margin:0 0 7px}.profile-section p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}

.avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.avatar-editor{display:flex;align-items:center;gap:16px;margin:10px 0 20px}.avatar.large{width:82px;height:82px;font-size:30px}.category-row{display:flex;align-items:center;justify-content:space-between}.tiny-add{border:0;background:none;color:var(--muted);cursor:pointer}.secondary{border:0;background:var(--app-button-secondary-bg,var(--input));border-radius:4px;padding:11px 14px;font-weight:700;cursor:pointer}.inline{display:flex;align-items:center;gap:8px}.inline .field{flex:1}.settings-modal h3{margin-top:24px;border-bottom:1px solid #3f4147;padding-bottom:8px}.settings-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border-radius:5px}.settings-list>div:hover{background:var(--hover)}.settings-list button{border:1px solid transparent;background:var(--input);border-radius:4px;padding:6px 9px;cursor:pointer}.settings-list span{display:flex;align-items:center;gap:8px}.settings-list i{width:12px;height:12px;border-radius:50%}.member-role{width:auto;min-width:160px;padding:7px}.role-create{display:grid;grid-template-columns:1fr 48px 140px auto;gap:8px;align-items:center}.role-color{width:48px;height:40px;background:none;border:0}@media(max-width:600px){.role-create{grid-template-columns:1fr 52px}.role-perms,.add-role{grid-column:1/-1}}

.server-title-button{min-width:0;flex:1;height:48px;margin:-0px 0;border:0;background:none;color:var(--strong);display:flex;align-items:center;justify-content:space-between;padding:0 4px 0 0;font-weight:800;cursor:pointer;text-align:left}.server-title-button:hover{color:#fff}.server-title-button .side-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-chevron{font-size:16px;color:var(--muted);margin-left:8px}.server-menu-popover,.context-menu{position:fixed;width:220px;background:var(--panel);border:1px solid color-mix(in srgb,var(--muted) 24%,transparent);border-radius:5px;padding:6px;box-shadow:0 12px 32px #000b;z-index:100}.server-menu-popover button,.context-menu button{width:100%;min-height:32px;border:0;background:none;color:var(--text);border-radius:3px;padding:7px 9px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;text-align:left}.server-menu-popover button:hover,.context-menu button:hover{background:var(--accent);color:#fff}.context-menu button.danger{color:var(--app-button-danger,var(--danger))}.context-menu button.danger:hover{background:var(--app-button-danger,var(--danger));color:#fff}.context-menu button b,.server-menu-popover button span{font-weight:400;color:inherit}.context-separator{height:1px;background:#3f4147;margin:5px}.invite-panel{display:flex;gap:8px;align-items:center}.invite-panel .field{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.member,.channel,.message,.server-btn{-webkit-user-select:none;user-select:none}

/* v1.13 */
.status-dot[data-status="idle"]{background:var(--yellow)}.status-dot[data-status="dnd"]{background:var(--danger)}.status-dot[data-status="offline"]{background:#80848e}.status-dot[data-status="online"]{background:var(--green)}
.avatar img{transition:opacity .16s ease}.member,.dm-row,.message{transition:background-color .12s ease,opacity .12s ease}.danger-button{border:0;background:var(--danger);color:#fff;border-radius:4px;padding:7px 10px;cursor:pointer}.danger-text{color:var(--app-button-danger,var(--danger))!important}.settings-help{color:var(--muted);margin:-8px 0 22px}.modal:has(.app-settings){padding:0;width:min(1080px,96vw);height:min(760px,94vh);max-height:94vh;overflow:hidden}.modal:has(.app-settings)>.close{display:none}.app-settings{height:100%;display:grid;grid-template-columns:250px minmax(0,1fr);background:var(--bg)}.settings-nav{background:var(--panel);padding:56px 14px 24px 28px;overflow:auto}.settings-server-name{padding:0 10px 14px;font-size:12px;font-weight:800;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-nav button{width:100%;border:0;background:none;color:var(--muted);text-align:left;padding:8px 10px;border-radius:4px;cursor:pointer;margin:1px 0}.settings-nav button:hover,.settings-nav button.active{background:var(--hover);color:var(--strong)}.settings-nav-separator{height:1px;background:var(--settings-border);margin:10px}.settings-content{padding:60px clamp(28px,5vw,64px);overflow:auto;max-width:760px}.settings-content h2{font-size:20px;margin:0 0 16px}.settings-content .primary{margin-top:18px}.channel-manager{min-width:min(680px,82vw)}.channel-manager h3{margin-top:24px}.context-menu{max-height:min(70vh,520px);overflow:auto}.dm-row .avatar{width:28px;height:28px}.modal-backdrop{animation:fadeIn .1s ease}.modal{animation:modalIn .14s ease}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes modalIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}/* Mobile rule moved to assets/css/mobile.css. */

/* v1.14 skeleton, emoji library, editable roles and server ownership */
.app-skeleton{height:100%;display:grid;grid-template-columns:72px 240px minmax(360px,1fr) 240px;background:var(--bg);overflow:hidden}.sk-rail{background:var(--rail);position:relative}.sk-rail:before,.sk-rail:after{content:"";position:absolute;left:12px;width:48px;height:48px;border-radius:50%;background:#35373c}.sk-rail:before{top:12px}.sk-rail:after{top:72px}.sk-side{background:var(--panel);padding:70px 12px 12px}.sk-side i,.sk-members i{display:block;height:32px;border-radius:6px;margin:10px 0;background:linear-gradient(90deg,#34363c,#41444b,#34363c);background-size:220% 100%;animation:skeletonPulse 1.15s linear infinite}.sk-main{padding:66px 32px}.sk-main b{display:block;width:44%;height:26px;border-radius:7px;margin-bottom:48px;background:#3d4047}.sk-main span{display:block;width:min(620px,82%);height:54px;border-radius:9px;margin:18px 0;background:linear-gradient(90deg,#35373c,#42454d,#35373c);background-size:220% 100%;animation:skeletonPulse 1.15s linear infinite}.sk-main span:nth-child(3){width:66%}.sk-main span:nth-child(4){width:76%}.sk-members{background:var(--panel);padding:64px 14px}.sk-members i{height:40px}@keyframes skeletonPulse{to{background-position:-220% 0}}
.emoji-picker{position:fixed;width:min(470px,calc(100vw - 16px));height:min(520px,70vh);background:#111214;border:1px solid #08090a;border-radius:9px;box-shadow:0 18px 55px #000c;z-index:160;display:grid;grid-template-rows:auto auto 1fr;overflow:hidden}.emoji-search-row{display:flex;gap:8px;padding:12px}.emoji-search-row .field{background:#1e1f22}.emoji-tabs{display:flex;gap:2px;padding:0 10px 8px;border-bottom:1px solid #2f3136;overflow-x:auto}.emoji-tabs button{border:0;background:none;border-radius:5px;padding:6px 9px;cursor:pointer;font-size:18px}.emoji-tabs button:hover{background:var(--hover)}.emoji-results{overflow:auto;padding:10px}.emoji-results h4{position:sticky;top:-10px;background:#111214;padding:8px 2px;margin:0;z-index:1;text-transform:uppercase;color:var(--muted);font-size:12px}.emoji-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:2px}.emoji-grid button{border:0;background:none;border-radius:5px;height:40px;font-size:25px;cursor:pointer}.emoji-grid button:hover{background:var(--hover);transform:scale(1.1)}
.role-settings-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:520px;margin:-60px clamp(-64px,-5vw,-28px);height:calc(100% + 120px)}.role-list-panel{background:#232428;padding:58px 10px 20px;overflow:auto;border-right:1px solid #1e1f22}.role-list-title{display:flex;align-items:center;justify-content:space-between;padding:0 8px 10px;color:var(--muted);text-transform:uppercase;font-size:12px}.role-row{width:100%;border:0;background:none;color:var(--muted);display:flex;align-items:center;gap:9px;padding:9px;border-radius:4px;cursor:pointer;text-align:left}.role-row i{width:12px;height:12px;border-radius:50%;flex:none}.role-row:hover,.role-row.active{background:var(--hover);color:var(--strong)}.role-editor{padding:58px 42px;overflow:auto}.role-editor-actions{display:flex;gap:10px;align-items:center;margin-top:20px}.new-role-box{border-top:1px solid #3f4147;margin-top:34px;padding-top:20px}.danger-zone{border:1px solid var(--app-button-danger,var(--danger));border-radius:8px;margin-top:42px;overflow:hidden}.danger-zone h3{margin:0;padding:16px;border-bottom:1px solid var(--app-button-danger,var(--danger));color:var(--app-button-danger,var(--danger))}.danger-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px}.danger-row+.danger-row{border-top:1px solid #3f4147}.danger-row small{display:block;color:var(--muted);margin-top:4px}.confirm-check{display:flex;gap:8px;align-items:flex-start;text-transform:none;font-size:14px;font-weight:400;color:var(--text)}
@media(max-width:900px){.app-skeleton{grid-template-columns:64px 220px 1fr}.sk-members{display:none}.role-settings-shell{grid-template-columns:170px 1fr}.role-editor{padding:50px 22px}.emoji-grid{grid-template-columns:repeat(7,1fr)}}@media(max-width:650px){.app-skeleton{grid-template-columns:58px 1fr}.sk-side{display:none}.emoji-grid{grid-template-columns:repeat(6,1fr)}.role-settings-shell{display:block;margin:-48px -18px;height:auto}.role-list-panel{padding:18px 10px;max-height:190px}.role-editor{padding:24px 16px}}

/* v1.15 */
.member-section-title{margin-top:14px}.member-section-title:first-child{margin-top:0}.member small{display:block}.context-check{display:inline-grid;place-items:center;width:16px;height:16px;border:1px solid #6d6f78;border-radius:3px;margin-right:9px;font-style:normal;font-size:12px}.context-check.checked{background:var(--accent);border-color:var(--accent);color:#fff}.invite-create-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-bottom:24px}.invite-create-grid label{margin:0}.invite-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 0;border-bottom:1px solid #3f4147}.invite-row small{display:block;color:var(--muted);margin-top:4px}.invite-row>div:last-child{display:flex;gap:7px}.empty-state{padding:30px;text-align:center;color:var(--muted)}.app-switch-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0;margin-top:12px;border-top:1px solid var(--settings-border);text-transform:none}.app-switch-row small{display:block;color:var(--muted);margin-top:4px}.app-switch-row input{width:42px;height:22px}/* Mobile rule moved to assets/css/mobile.css. */

/* v1.16 smooth updates and application-style user settings */
.avatar img{display:block;width:100%;height:100%;object-fit:cover}.avatar,.avatar img,.status-dot{transition:none!important}.status-dot[data-status="online"]{background:var(--green)!important}.status-dot[data-status="idle"]{background:var(--yellow)!important}.status-dot[data-status="dnd"]{background:var(--danger)!important}.status-dot[data-status="offline"]{background:#80848e!important}.send:disabled{opacity:.55;cursor:not-allowed}.reaction{transition:background-color .12s,border-color .12s}.reaction.mine{background:#3c4270;border-color:var(--accent)}.context-menu{min-width:210px}.context-menu button{min-height:32px}.context-menu .context-check{display:inline-grid;place-items:center;width:18px;height:18px;border:1px solid #80848e;border-radius:4px;margin-right:8px}.context-menu .context-check.checked{background:var(--accent);border-color:var(--accent);color:#fff}.manager-window{min-width:min(680px,82vw)}.settings-list small,.account-card small,.profile-preview-body small{display:block;color:var(--muted);margin-top:4px}.user-settings-shell{min-height:min(720px,86vh);width:min(1000px,94vw)}.user-settings-shell .settings-nav{width:235px}.settings-section-label{text-transform:uppercase;font-size:11px;font-weight:800;color:var(--muted);padding:8px 10px}.profile-preview-card{width:min(430px,100%);background:var(--settings-card-bg);border-radius:8px;overflow:hidden;margin:16px 0}.profile-banner{height:105px;background:var(--accent)}.profile-preview-body{position:relative;padding:48px 18px 18px}.profile-preview-body .avatar.large{position:absolute;top:-42px;left:18px;border:6px solid var(--settings-card-bg)}.account-card{display:flex;align-items:center;gap:18px;background:var(--rail);padding:18px;border-radius:8px}.role-order-controls{display:flex;gap:5px;margin-left:auto}.role-order-controls button{padding:4px 8px}


/* v1.18 application-like dialogs, attachment cards and lightbox */
.context-menu button:disabled{opacity:.45;cursor:not-allowed}.messagebox{width:min(440px,80vw)}.messagebox p{color:var(--muted);line-height:1.45}.messagebox-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.pending-attachment{display:flex;align-items:center;gap:12px;background:#2b2d31;border-radius:8px;padding:10px 12px;margin:0 0 8px;max-width:420px}.pending-attachment img{width:58px;height:58px;object-fit:cover;border-radius:5px}.pending-attachment>div{min-width:0;flex:1}.pending-attachment strong,.pending-attachment small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending-attachment small{color:var(--muted);margin-top:3px}.image-attachment{margin-top:8px;max-width:min(520px,70vw)}.image-open{display:block;border:0;padding:0;background:none;cursor:zoom-in;border-radius:8px;overflow:hidden}.image-open img{display:block;max-width:100%;max-height:420px;object-fit:contain;border-radius:8px}.attachment-caption{color:var(--muted);font-size:12px;margin-top:4px}.file-attachment{display:flex;align-items:center;gap:12px;max-width:460px;margin-top:8px;padding:12px;background:#2b2d31;border:1px solid #1e1f22;border-radius:8px;color:var(--text);text-decoration:none}.file-attachment>span:nth-child(2){min-width:0;flex:1}.file-attachment strong,.file-attachment small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-attachment strong{color:#00a8fc}.file-attachment small{color:var(--muted);margin-top:3px}.file-icon{font-size:28px}.image-lightbox-backdrop{background:#000d}.image-lightbox-backdrop .modal{width:min(94vw,1400px);height:min(92vh,1000px);max-width:none;background:transparent;box-shadow:none;padding:0;display:grid;place-items:center}.image-lightbox-backdrop .modal>.close{position:fixed;right:24px;top:20px;background:#1119}.image-lightbox{width:100%;height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;place-items:center}.image-lightbox>img{max-width:100%;max-height:calc(92vh - 58px);object-fit:contain}.image-lightbox-bar{width:100%;display:flex;justify-content:space-between;align-items:center;padding:10px 4px;color:#fff}.composer-wrap{padding-top:8px}

/* v1.19 moderation, media, settings and visual polish */
.app-icon{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.server-chevron .app-icon{width:16px;height:16px}.icon-btn,.callbar button{display:inline-grid;place-items:center}.toast-stack{position:fixed;right:18px;bottom:18px;z-index:300;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none}.toast-item{max-width:min(420px,calc(100vw - 36px));padding:12px 16px;border-radius:6px;color:#fff;box-shadow:0 10px 32px #0008;opacity:0;transform:translateY(8px);transition:opacity .16s ease,transform .16s ease}.toast-item.show{opacity:1;transform:none}.toast-item.good{background:#248046}.toast-item.bad{background:#da373c}.context-menu{box-shadow:0 10px 30px #000b}.context-menu+.context-menu{margin-left:-8px}.member-section{display:block}.member-section-list{display:block}.member{transition:opacity .12s ease,background-color .12s ease}.member.offline{opacity:.5}.channel-settings-box{width:min(520px,80vw)}.upload-progress{background:#2b2d31;border-radius:8px;padding:10px 12px;margin:0 0 8px}.upload-progress>div{display:flex;justify-content:space-between;gap:16px;margin-bottom:8px}.upload-progress strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-progress progress{width:100%;height:8px;accent-color:var(--composer-accent,var(--accent))}.image-lightbox-bar>div{display:flex;gap:8px}.image-lightbox-bar a{text-decoration:none}.voice-stage{background:#111214}.voice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;padding:18px}.video-tile{position:relative;min-height:220px;background:#1e1f22;border-radius:10px;overflow:hidden;display:grid;place-items:center}.video-tile video{width:100%;height:100%;object-fit:contain;background:#000}.video-label{position:absolute;left:10px;bottom:10px;background:#000a;color:white;padding:4px 8px;border-radius:5px}.callbar button{width:44px;height:44px;border-radius:50%;border:0;background:#2b2d31;color:#dbdee1}.callbar .hangup{background:var(--app-button-danger,var(--danger))}.callbar button.disabled{background:var(--app-button-danger,var(--danger))}.user-settings-shell{grid-template-columns:minmax(190px,240px) minmax(0,1fr);background:var(--bg)}.user-settings-shell .settings-nav{background:var(--panel);padding-top:54px}.user-settings-shell .settings-content{max-width:760px;padding:60px 40px 80px}.settings-page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.settings-page-head h2{margin:0}.account-hero{border-radius:8px;overflow:hidden;background:var(--settings-card-bg);margin-bottom:20px}.account-banner{height:100px;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 68%,var(--strong)))}.account-main{display:flex;align-items:center;gap:18px;padding:16px 18px 18px}.account-main .avatar.large{margin-top:-54px;border:6px solid var(--settings-card-bg)}.account-main>div{flex:1}.account-main h3{margin:0 0 4px}.settings-card{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--settings-card-bg);border-radius:8px;padding:16px;margin-top:12px}.settings-card small{display:block;color:var(--muted);margin-top:5px}.profile-settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:28px}.profile-settings-grid label{margin-top:18px}.user-settings-shell .settings-nav button{border-radius:4px;padding:7px 10px;margin:1px 0}.user-settings-shell .settings-nav button.active{background:#404249;color:#fff}.sidebar-title{padding-right:8px}.server-title-button{width:100%}.image-lightbox-backdrop .modal{pointer-events:none}.image-lightbox-backdrop .modal>.close,.image-lightbox{pointer-events:auto}.image-lightbox{cursor:zoom-out}.image-lightbox>img,.image-lightbox-bar{cursor:default}.composer .icon-btn{color:#b5bac1}.composer .icon-btn:hover{color:#dbdee1}.rail .server-btn.add-server{color:#23a559}.rail .server-btn.add-server:hover{background:#23a559;color:#fff}
@media(max-width:800px){.profile-settings-grid{grid-template-columns:1fr}.user-settings-shell{grid-template-columns:170px 1fr}.user-settings-shell .settings-content{padding:48px 20px}.image-lightbox-bar{align-items:flex-start;gap:8px;flex-direction:column}.image-lightbox-bar>div{flex-wrap:wrap}}

/* v1.20 live presence, legacy tags, permissions, stable context submenus and media loading */
.userbar{grid-template-columns:auto minmax(0,1fr) repeat(4,32px);gap:4px}.userbar .user-meta{min-width:0}.userbar .user-meta strong,.userbar .user-meta small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-tag,.profile-tag,.message-tag,.dm-tag{color:#b5bac1;font-size:.78em;font-weight:400}.userbar .icon-btn{width:32px;height:32px}.userbar .icon-btn.active{color:var(--app-button-danger,var(--danger));background:#3f4147}.context-menu{z-index:10020}.context-menu+.context-menu{margin-right:8px}.context-check{display:inline-grid;place-items:center;width:16px;height:16px;border:1px solid #72767d;border-radius:3px;margin-right:8px}.context-check.checked{background:#5865f2;border-color:#5865f2}.permission-grid{display:grid;gap:8px;margin:12px 0 20px}.permission-row{display:flex;align-items:center;gap:12px;background:var(--input);border:1px solid color-mix(in srgb,var(--muted) 20%,transparent);border-radius:6px;padding:11px 12px}.permission-row input{width:18px;height:18px}.mini-user{width:100%;border:0;background:none;color:#b5bac1;text-align:left;padding:3px 24px;cursor:pointer}.mini-user.sharing{color:#23a559}.mini-user:hover{background:#35373c;color:#fff}.video-tile.focused{outline:3px solid #23a559;box-shadow:0 0 0 6px rgba(35,165,89,.18)}.image-attachment{position:relative;min-width:220px;min-height:120px}.image-skeleton{display:none;position:absolute;inset:0;z-index:2;border-radius:8px;background:#25262b;overflow:hidden;place-items:center;color:#b5bac1}.image-attachment.loading .image-skeleton{display:grid}.image-skeleton i{position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);animation:image-shimmer 1.2s infinite}.image-attachment.loading img{opacity:0}.image-attachment img{transition:opacity .16s ease}.image-attachment.load-error .image-skeleton span{font-size:0}.image-attachment.load-error .image-skeleton span:after{content:var(--i18n-image-failed,'Image failed to load');font-size:13px}@keyframes image-shimmer{to{transform:translateX(100%)}}
@media(max-width:900px){.userbar{grid-template-columns:auto minmax(0,1fr) repeat(3,32px)}.userbar .logout{display:none}}

/* v1.22 profiles, attachments, typing, and group DMs */
.profile-role-list{display:flex;flex-wrap:wrap;gap:6px}.profile-role{display:inline-flex;align-items:center;gap:6px;background:#111214;border:1px solid #3f4147;border-radius:4px;padding:4px 7px;font-size:12px}.profile-role i{width:10px;height:10px;border-radius:50%;background:var(--role-color,#99aab5)}
.typing{background:transparent!important;border:0!important;min-height:18px;padding:2px 4px;color:var(--muted)}.typing strong{color:var(--strong)}.typing-dots{display:inline-flex;gap:2px;margin-left:3px;vertical-align:middle}.typing-dots i{width:3px;height:3px;background:currentColor;border-radius:50%;animation:typingDot 1s infinite}.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}@keyframes typingDot{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-3px);opacity:1}}
.audio-attachment,.file-attachment{margin-top:8px;width:min(430px,100%);background:#2b2d31;border:1px solid #1e1f22;border-radius:8px;padding:12px}.audio-file-head,.file-attachment{display:flex;align-items:center;gap:10px}.audio-file-head>div,.file-attachment>span:nth-child(2){min-width:0;flex:1}.audio-file-head strong,.audio-file-head small,.file-attachment strong,.file-attachment small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-file-head small,.file-attachment small{color:var(--muted);margin-top:2px}.audio-attachment audio{width:100%;height:36px;margin-top:10px}.attachment-download{display:inline-grid;place-items:center;flex:none;text-decoration:none}.attachment-download .app-icon{width:19px;height:19px}.attachment-caption{display:flex;align-items:center;justify-content:space-between;gap:8px}.icon-only{display:inline-grid!important;place-items:center;padding:8px!important}.group-row .app-icon,.create-group-row .app-icon{width:22px;height:22px}.group-row span,.create-group-row span{min-width:0}.group-row small{display:block;color:var(--muted);font-size:11px}.group-friend-list{max-height:300px;overflow:auto;margin-top:8px;border-radius:6px;background:#1e1f22;padding:6px}.group-friend{display:flex;align-items:center;gap:9px;padding:7px;border-radius:4px;text-transform:none;font-size:14px;margin:0}.group-friend:hover{background:var(--hover)}.group-friend .avatar{width:28px;height:28px}.group-friend input{accent-color:var(--accent)}


/* v1.23 application-style drag ordering and broadcast focus */
.sortable-list,.role-list-panel{position:relative}.sortable-row,.role-row{transition:transform .12s ease,background-color .12s ease,opacity .12s ease}.sortable-row{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.drag-handle{color:#949ba4;cursor:grab;user-select:none;font-size:18px;line-height:1}.dragging{opacity:.48!important;background:#404249!important;box-shadow:0 8px 24px #0007;cursor:grabbing}.sorting{pointer-events:none}.role-row.drag-locked .drag-handle{opacity:.2;cursor:not-allowed}.mini-user.sharing{position:relative;padding-right:42px}.mini-user.sharing:after{content:var(--i18n-watch,'WATCH');position:absolute;right:7px;top:50%;transform:translateY(-50%);font-size:9px;font-weight:800;color:#23a559}.video-tile.focused{grid-column:1/-1;min-height:min(68vh,720px)}

/* v1.24 layout and account refinements */
.attachment-download,.attachment-download .app-icon,.image-lightbox-bar .icon-only,.image-lightbox-bar .icon-only .app-icon{color:#fff!important;stroke:#fff!important}
.shell{grid-template-columns:72px 260px minmax(360px,1fr) 240px}
.voice-stage{left:332px}
.userbar{min-width:0;padding:7px 8px;gap:6px}
.userbar .icon-btn{width:32px;height:32px;padding:6px;flex:0 0 32px}
.user-meta strong{display:flex!important;align-items:baseline;min-width:0}.user-meta .user-tag{flex:none}
.presence-logout{color:#f23f42!important}.presence-logout .app-icon{width:18px;height:18px}
.account-hero{overflow:visible;background:var(--settings-card-bg);border:1px solid var(--settings-border);border-radius:8px;padding-bottom:16px}
.account-banner{height:116px;border-radius:8px 8px 0 0;background:linear-gradient(135deg,var(--accent) 0%,color-mix(in srgb,var(--accent) 68%,var(--strong)) 100%)}
.account-profile-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:18px;padding:0 18px;margin-top:-42px}
.account-avatar-wrap{width:92px;height:92px;border-radius:50%;background:var(--settings-card-bg);padding:7px;display:grid;place-items:center;z-index:1}
.account-avatar-wrap .avatar.large{width:78px;height:78px;border:0;margin:0;font-size:28px}
.account-avatar-wrap .status-dot{border-color:var(--settings-card-bg)}
.account-identity{min-width:0;margin-top:58px;padding-bottom:7px}.account-identity h3{font-size:22px;line-height:1.2;margin:0 0 4px;color:var(--strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-identity small{color:var(--muted)}
.account-profile-row>.primary{align-self:flex-start;margin:58px 0 0;padding:10px 16px}
.account-details{margin:18px 18px 0;background:var(--settings-inner-bg);border:1px solid var(--settings-border);border-radius:8px;padding:4px 16px}
.account-detail-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0;border-bottom:1px solid var(--settings-border)}.account-detail-row:last-child{border-bottom:0}.account-detail-row>div{min-width:0}.account-detail-row span{display:block;text-transform:uppercase;font-size:11px;font-weight:800;color:var(--muted);margin-bottom:5px}.account-detail-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--strong)}
.account-security-card{margin-top:20px}
@media(max-width:1000px){.shell{grid-template-columns:64px 240px 1fr}.voice-stage{left:304px}}
/* Mobile rule moved to assets/css/mobile.css. */

/* v1.25 ordering, broadcast feedback, member spacing and message-link polish */
.message .content a{color:#53d5fd}.message .content a:hover{color:#8be5ff;text-decoration:underline}
.member-section{margin-bottom:22px}.member-section+.member-section{margin-top:12px}.member-section-title{margin-bottom:7px}
.mini-user{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 20px}.mini-user .avatar.mini{width:22px;height:22px;min-width:22px;font-size:10px}.mini-user .status-dot{width:7px;height:7px}.mini-user-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.voice-share-icon{flex:none}
.broadcast-placeholder{display:grid;place-items:center;gap:10px;color:#b5bac1}.broadcast-placeholder .avatar.large{width:72px;height:72px}.video-tile.connecting video{display:none}.broadcast-status{font-size:13px}.video-tile.connecting:after{content:'';position:absolute;inset:auto 20% 24px;height:3px;border-radius:4px;background:linear-gradient(90deg,transparent,#5865f2,transparent);animation:broadcast-loading 1.2s linear infinite}@keyframes broadcast-loading{from{transform:translateX(-40%)}to{transform:translateX(40%)}}
.sortable-row .drag-handle{touch-action:none;cursor:grab;user-select:none}.sortable-row.dragging{opacity:.55;outline:2px solid #5865f2}.sortable-list.sorting{pointer-events:none}.channel-order-sections{display:grid;gap:18px}.channel-order-group h3{margin:0 0 8px;color:#b5bac1;text-transform:uppercase;font-size:12px}.empty-state.compact{padding:12px}


/* v1.26 AFK, complete appearance themes and independent account identity editors */
:root[data-theme="light"]{--bg:#f2f3f5;--panel:#e3e5e8;--rail:#d7d9dc;--top:#ffffff;--muted:#5c6067;--text:#313338;--strong:#060607;--hover:#d4d7dc;--input:#ebedef;--green:#248046;--yellow:#9a6700}
:root[data-theme="light"] body{background:var(--bg);color:var(--text)}
:root[data-theme="light"] .shell,:root[data-theme="light"] .main,:root[data-theme="light"] .user-settings-shell{background:var(--bg)}
:root[data-theme="light"] .rail,:root[data-theme="light"] .sidebar,:root[data-theme="light"] .members,:root[data-theme="light"] .settings-nav,:root[data-theme="light"] .userbar,:root[data-theme="light"] .sidebar-voice-box{background:var(--panel)}
:root[data-theme="light"] .header,:root[data-theme="light"] .modal,:root[data-theme="light"] .context-menu,:root[data-theme="light"] .presence-popover,:root[data-theme="light"] .auth-card{background:#fff;color:var(--text)}
:root[data-theme="light"] .message:hover,:root[data-theme="light"] .channel:hover,:root[data-theme="light"] .channel.active,:root[data-theme="light"] .member:hover{background:var(--hover)}
:root[data-theme="light"] .composer,:root[data-theme="light"] .field,:root[data-theme="light"] .search,:root[data-theme="light"] .custom-status-row input{background:var(--input);color:var(--strong)}
:root[data-theme="light"] .account-hero,:root[data-theme="light"] .account-avatar-wrap,:root[data-theme="light"] .profile-preview-card{background:#fff}
:root[data-theme="light"] .account-details,:root[data-theme="light"] .settings-card,:root[data-theme="light"] .permission-row,:root[data-theme="light"] .audio-attachment,:root[data-theme="light"] .file-attachment{background:#f2f3f5;border-color:#d4d7dc}
:root[data-theme="light"] .status-dot{border-color:var(--panel)}
:root[data-theme="light"] .msg-actions,:root[data-theme="light"] .reaction{background:#fff;border-color:#c7c9cd}
:root[data-theme="light"] .reaction.mine{background:#e0e3ff}
:root[data-theme="light"] .presence-popover{border-color:#c7c9cd;box-shadow:0 12px 35px #0003}
:root[data-theme="light"] .modal-backdrop{background:#0007}
.theme-choice{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:16px;margin-bottom:24px}.theme-card{display:grid;gap:10px;text-align:left;border:2px solid transparent;background:var(--panel);color:var(--strong);border-radius:8px;padding:10px;cursor:pointer}.theme-card.selected{border-color:var(--accent)}.theme-preview{display:block;height:88px;border-radius:5px;border:1px solid #0002}.dark-preview{background:linear-gradient(90deg,#1e1f22 0 24%,#2b2d31 24% 52%,#313338 52%)}.light-preview{background:linear-gradient(90deg,#d7d9dc 0 24%,#e3e5e8 24% 52%,#f2f3f5 52%)}
@media(max-width:620px){.theme-choice{grid-template-columns:1fr}}
/* v1.27 sidebar ordering, composer typing and attachment idle state */
.pending-attachment[hidden],.pending-attachment:empty{display:none!important;background:transparent!important;border:0!important;padding:0!important;margin:0!important;min-height:0!important}
.composer-wrap>.typing{order:0;background:transparent!important;padding:0 4px 4px;height:20px;min-height:20px}
.composer-wrap>.composer{order:1}
.composer-wrap{display:flex;flex-direction:column}
.sidebar-category-group,.sidebar-channel-item{position:relative}
.sidebar-category-group[draggable="true"]>.category,.sidebar-channel-item[draggable="true"]>.channel{cursor:pointer}
.sidebar-category-group.dragging,.sidebar-channel-item.dragging{opacity:.5}
.sidebar-category-group.dragging>.category,.sidebar-channel-item.dragging>.channel{cursor:grabbing}
.sidebar-drag-grip{display:inline-block;margin-right:5px;color:var(--muted);font-style:normal}
.sidebar-channel-list{min-height:4px}
.typing:not(.active){visibility:hidden}
.typing.active{visibility:visible}


/* v1.28 lightbox controls, normalized fields and voice settings */
.image-lightbox-backdrop{z-index:100000}
.image-lightbox-backdrop .image-lightbox-bar{position:relative;z-index:3;min-height:54px;padding:10px 12px;background:rgba(17,18,20,.94);border-radius:8px;color:#fff}
.image-lightbox-backdrop .image-lightbox-bar .secondary,
.image-lightbox-backdrop .image-lightbox-bar .icon-only{display:inline-grid;place-items:center;min-height:38px;background:var(--app-button-secondary-bg)!important;color:var(--app-button-secondary-text)!important;border:1px solid rgba(255,255,255,.14);opacity:1!important;visibility:visible!important}
.image-lightbox-backdrop .image-lightbox-bar .secondary:hover,
.image-lightbox-backdrop .image-lightbox-bar .icon-only:hover{background:var(--app-button-secondary-hover)!important}
.image-lightbox-backdrop .image-lightbox-bar .app-icon{color:#fff!important;stroke:#fff!important}
.image-lightbox-backdrop .modal>.close{z-index:4;color:#fff!important;display:grid!important;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.18)}
.field:not(textarea),select.field,input.field{height:40px;min-height:40px;padding:0 12px;line-height:40px}
select.field{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#b5bac1 50%),linear-gradient(135deg,#b5bac1 50%,transparent 50%);background-position:calc(100% - 17px) 17px,calc(100% - 12px) 17px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px}
textarea.field{min-height:88px;line-height:1.4;padding:11px 12px}
.voice-settings-card{background:var(--settings-card-bg);border:1px solid var(--settings-border);border-radius:8px;padding:20px}
.voice-settings-card h3{margin:0 0 10px}
.voice-device-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.voice-device-grid>div{min-width:0}
.voice-device-grid select{width:100%;min-width:0}
.voice-settings-card label{display:flex;justify-content:space-between;align-items:center;margin-top:20px}
.voice-range{width:100%;accent-color:var(--accent)}
.voice-settings-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.voice-device-status[data-state="ready"]{color:var(--green)}
.settings-help{color:var(--muted);font-size:12px;line-height:1.45;margin-top:14px}
@media(max-width:720px){.voice-device-grid{grid-template-columns:1fr}.image-lightbox-backdrop .image-lightbox-bar{width:calc(100% - 16px)}}

/* v1.30 mobile-only application layout. Desktop rules above remain unchanged. */
.mobile-backdrop{display:none}
/* Mobile rule moved to assets/css/mobile.css. */


/* v1.31 reaction migration, typing, lightbox, permissions and theme refinements */
.permission-grid{gap:6px!important}.permission-row{min-height:44px!important;padding:8px 10px!important;margin:0!important}.permission-row span{line-height:1.25}
.image-lightbox-backdrop .modal{width:min(1100px,96vw)!important;height:min(900px,94vh);max-width:none!important;padding:0!important;background:transparent!important;box-shadow:none!important;overflow:visible}
.image-lightbox-backdrop .modal>.close{display:none!important}
.image-lightbox{width:100%;height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);background:rgba(17,18,20,.98);border-radius:10px;overflow:hidden;position:relative}
.image-lightbox-toolbar{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;padding:10px 12px;background:#111214;color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}
.image-lightbox-toolbar strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.image-lightbox-actions{display:flex;align-items:center;gap:8px;flex:none}
.lightbox-action{display:inline-flex!important;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 11px;border:1px solid rgba(255,255,255,.18)!important;border-radius:5px;background:var(--app-button-secondary-bg)!important;color:var(--app-button-secondary-text)!important;text-decoration:none!important;opacity:1!important;visibility:visible!important;cursor:pointer}
.lightbox-action:hover{background:var(--app-button-secondary-hover)!important}.lightbox-action .app-icon{width:18px;height:18px;color:#fff!important;stroke:#fff!important}
.image-lightbox-canvas{min-height:0;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.72);cursor:zoom-out}
.image-lightbox-canvas img{display:block;max-width:100%;max-height:100%;object-fit:contain;cursor:default}
.shell.members-hidden{grid-template-columns:72px 260px minmax(360px,1fr) 0!important}.shell.members-hidden>.members{display:none!important}
:root[data-theme="light"]{--text:#2e3338;--strong:#060607;--muted:#4e5058}
:root[data-theme="light"] .sidebar-scroll,:root[data-theme="light"] .member,:root[data-theme="light"] .channel,:root[data-theme="light"] .category,:root[data-theme="light"] .typing,:root[data-theme="light"] .message,:root[data-theme="light"] .content{color:#2e3338}
:root[data-theme="light"] .msg-head strong,:root[data-theme="light"] .member strong,:root[data-theme="light"] .channel.active,:root[data-theme="light"] h1,:root[data-theme="light"] h2,:root[data-theme="light"] h3{color:#060607}
:root[data-theme="light"] .time,:root[data-theme="light"] .member small,:root[data-theme="light"] .topic,:root[data-theme="light"] .category{color:#4e5058}
:root[data-theme="light"] .context-menu button,:root[data-theme="light"] .presence-popover button,:root[data-theme="light"] .settings-nav button{color:#2e3338}
:root[data-theme="light"] .secondary,:root[data-theme="light"] .icon-btn{color:#2e3338}
/* Mobile rule moved to assets/css/mobile.css. */

/* v1.32 complete light-mode surface and control normalization */
.user-meta{cursor:pointer;border-radius:4px;padding:2px 4px;margin-left:-4px;outline:none}
.user-meta:hover,.user-meta:focus-visible{background:var(--hover)}
:root[data-theme="light"]{color-scheme:light;--bg:#f2f3f5;--panel:#e3e5e8;--rail:#d7d9dc;--top:#fff;--input:#ebedef;--hover:#d4d7dc;--text:#2e3338;--strong:#060607;--muted:#4e5058}
:root[data-theme="light"] body,
:root[data-theme="light"] #app,
:root[data-theme="light"] .shell,
:root[data-theme="light"] .main,
:root[data-theme="light"] .friends,
:root[data-theme="light"] .messages,
:root[data-theme="light"] .settings-content{background:var(--bg);color:var(--text)}
:root[data-theme="light"] .rail,
:root[data-theme="light"] .sidebar,
:root[data-theme="light"] .sidebar-scroll,
:root[data-theme="light"] .members,
:root[data-theme="light"] .settings-nav,
:root[data-theme="light"] .userbar,
:root[data-theme="light"] .replying{background:var(--panel);color:var(--text)}
:root[data-theme="light"] .header,
:root[data-theme="light"] .sidebar-title,
:root[data-theme="light"] .modal,
:root[data-theme="light"] .auth-card,
:root[data-theme="light"] .presence-popover,
:root[data-theme="light"] .context-menu,
:root[data-theme="light"] .settings-card,
:root[data-theme="light"] .account-hero,
:root[data-theme="light"] .account-details,
:root[data-theme="light"] .profile-preview-card,
:root[data-theme="light"] .voice-settings-card,
:root[data-theme="light"] .theme-card,
:root[data-theme="light"] .friend,
:root[data-theme="light"] .file-attachment,
:root[data-theme="light"] .audio-attachment,
:root[data-theme="light"] .pending-attachment:not(:empty){background:#fff;color:var(--text);border-color:#c7c9cd}
:root[data-theme="light"] .header,
:root[data-theme="light"] .modal,
:root[data-theme="light"] .auth-card,
:root[data-theme="light"] .presence-popover,
:root[data-theme="light"] .context-menu,
:root[data-theme="light"] .settings-card,
:root[data-theme="light"] .account-hero,
:root[data-theme="light"] .account-details,
:root[data-theme="light"] .profile-preview-card,
:root[data-theme="light"] .voice-settings-card,
:root[data-theme="light"] .theme-card{background:#fff;color:var(--text);border-color:#c7c9cd;box-shadow:none}
:root[data-theme="light"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
:root[data-theme="light"] select,
:root[data-theme="light"] textarea,
:root[data-theme="light"] .field,
:root[data-theme="light"] .search,
:root[data-theme="light"] .composer,
:root[data-theme="light"] .custom-status-row input{background:#ebedef!important;color:#060607!important;border:1px solid #c7c9cd!important;caret-color:#060607}
:root[data-theme="light"] input::placeholder,
:root[data-theme="light"] textarea::placeholder{color:#6d6f78!important;opacity:1}
:root[data-theme="light"] select option{background:#fff;color:#060607}
:root[data-theme="light"] label{color:#4e5058}
:root[data-theme="light"] button:not(.primary):not(.danger):not(.server-btn),
:root[data-theme="light"] .secondary,
:root[data-theme="light"] .icon-btn,
:root[data-theme="light"] .lightbox-action{color:#2e3338}
:root[data-theme="light"] .secondary{background:#e3e5e8;border-color:#c7c9cd}
:root[data-theme="light"] .secondary:hover,
:root[data-theme="light"] .icon-btn:hover,
:root[data-theme="light"] .context-menu button:hover,
:root[data-theme="light"] .presence-popover button:hover,
:root[data-theme="light"] .settings-nav button:hover{background:#d4d7dc;color:#060607}
:root[data-theme="light"] .primary{color:#fff}
:root[data-theme="light"] .danger{color:#fff}
:root[data-theme="light"] .message:hover,
:root[data-theme="light"] .member:hover,
:root[data-theme="light"] .channel:hover,
:root[data-theme="light"] .channel.active,
:root[data-theme="light"] .friend:hover{background:#e3e5e8}
:root[data-theme="light"] .msg-actions,
:root[data-theme="light"] .reaction,
:root[data-theme="light"] .permission-row,
:root[data-theme="light"] .account-detail-row,
:root[data-theme="light"] .app-switch-row,
:root[data-theme="light"] .role-editor-row,
:root[data-theme="light"] .management-row{background:#fff!important;color:#2e3338;border-color:#c7c9cd!important}
:root[data-theme="light"] .reaction.mine{background:#e0e3ff!important;border-color:#5865f2!important}
:root[data-theme="light"] .message .content,
:root[data-theme="light"] .msg-head strong,
:root[data-theme="light"] .user-meta strong,
:root[data-theme="light"] .friend strong,
:root[data-theme="light"] .member strong,
:root[data-theme="light"] .settings-content strong,
:root[data-theme="light"] h1,
:root[data-theme="light"] h2,
:root[data-theme="light"] h3,
:root[data-theme="light"] h4{color:#060607}
:root[data-theme="light"] small,
:root[data-theme="light"] .muted,
:root[data-theme="light"] .time,
:root[data-theme="light"] .edited,
:root[data-theme="light"] .topic,
:root[data-theme="light"] .typing,
:root[data-theme="light"] .reply-preview,
:root[data-theme="light"] .settings-help{color:#4e5058}
:root[data-theme="light"] .app-icon{stroke:currentColor}
:root[data-theme="light"] .modal-backdrop{background:rgba(30,31,34,.55)}
:root[data-theme="light"] .image-skeleton{background:#e3e5e8;color:#4e5058}
:root[data-theme="light"] .image-skeleton i{background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent)}

/* v1.33 full-page image viewer */
.image-lightbox-backdrop{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;padding:0!important;margin:0!important;background:rgba(0,0,0,.94)!important;display:block!important;overflow:hidden!important}
.image-lightbox-backdrop .modal{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:hidden!important}
.image-lightbox{position:relative!important;width:100vw!important;height:100dvh!important;display:block!important;border-radius:0!important;background:transparent!important;overflow:hidden!important}
.image-lightbox-toolbar{position:absolute!important;z-index:20!important;top:max(12px,env(safe-area-inset-top))!important;left:50%!important;transform:translateX(-50%)!important;width:auto!important;max-width:calc(100vw - 24px)!important;min-height:48px!important;padding:6px 8px!important;border:1px solid rgba(255,255,255,.16)!important;border-radius:9px!important;background:rgba(17,18,20,.9)!important;box-shadow:0 8px 28px rgba(0,0,0,.48)!important;backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important}
.image-lightbox-toolbar>strong{max-width:min(38vw,460px)!important;color:#fff!important}
.image-lightbox-actions{display:flex!important;flex-wrap:nowrap!important}
.image-lightbox-canvas{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;padding:74px 20px 20px!important;display:flex!important;align-items:center!important;justify-content:center!important;background:transparent!important;overflow:hidden!important}
.image-lightbox-canvas img{display:block!important;width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;object-position:center!important}
/* Mobile rule moved to assets/css/mobile.css. */


/* v1.34 responsive, theme-complete media and application-style polish */
.video-attachment,.youtube-embed{width:min(100%,560px);margin-top:8px;border-radius:8px;overflow:hidden;background:#111214;border:1px solid #1e1f22}
.video-attachment video{display:block;width:100%;max-height:520px;background:#000;object-fit:contain}
.media-file-head{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--panel)}
.media-file-head>div{min-width:0;flex:1}.media-file-head strong,.media-file-head small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-file-head small{color:var(--muted);margin-top:2px}
.youtube-embed{position:relative;aspect-ratio:16/9;background:#000}.youtube-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Every surface follows the selected light palette. */
:root[data-theme="light"] .server-btn:not(.active):not(.home),
:root[data-theme="light"] .video-attachment,
:root[data-theme="light"] .media-file-head,
:root[data-theme="light"] .audio-file-head,
:root[data-theme="light"] .image-attachment,
:root[data-theme="light"] .attachment-caption,
:root[data-theme="light"] .youtube-embed,
:root[data-theme="light"] .emoji-picker,
:root[data-theme="light"] .emoji-search,
:root[data-theme="light"] .emoji-tabs,
:root[data-theme="light"] .emoji-grid,
:root[data-theme="light"] .role-list-panel,
:root[data-theme="light"] .role-editor,
:root[data-theme="light"] .channel-manager,
:root[data-theme="light"] .category-manager,
:root[data-theme="light"] .messagebox,
:root[data-theme="light"] .profile-card,
:root[data-theme="light"] .group-editor,
:root[data-theme="light"] .invite-row,
:root[data-theme="light"] .upload-progress,
:root[data-theme="light"] .broadcast-placeholder{background:#fff!important;color:#2e3338!important;border-color:#c7c9cd!important}
:root[data-theme="light"] .sidebar-title,
:root[data-theme="light"] .header,
:root[data-theme="light"] .userbar{box-shadow:0 1px 0 #c7c9cd}
:root[data-theme="light"] .userbar,
:root[data-theme="light"] .sidebar-voice-box{background:#d7d9dc!important}
:root[data-theme="light"] .server-title-button,
:root[data-theme="light"] .category-row button,
:root[data-theme="light"] .channel,
:root[data-theme="light"] .mini-user,
:root[data-theme="light"] .dm-row,
:root[data-theme="light"] .group-row{color:#4e5058!important}
:root[data-theme="light"] .server-title-button:hover,
:root[data-theme="light"] .dm-row:hover,
:root[data-theme="light"] .group-row:hover{background:#d4d7dc!important;color:#060607!important}
:root[data-theme="light"] .composer textarea,
:root[data-theme="light"] .composer button,
:root[data-theme="light"] .upload-progress strong,
:root[data-theme="light"] .video-attachment strong,
:root[data-theme="light"] .audio-attachment strong,
:root[data-theme="light"] .file-attachment strong{color:#060607!important}
:root[data-theme="light"] .context-menu hr,
:root[data-theme="light"] .settings-nav-separator,
:root[data-theme="light"] .invite-row,
:root[data-theme="light"] .friend{border-color:#c7c9cd!important}
:root[data-theme="light"] input[type="range"]{accent-color:#5865f2}
:root[data-theme="light"] progress{accent-color:#5865f2;background:#d4d7dc}
:root[data-theme="light"] audio{color-scheme:light}
:root[data-theme="light"] .video-tile{background:#d4d7dc;color:#060607}
:root[data-theme="light"] .callbar{background:#fff;border-top:1px solid #c7c9cd}
:root[data-theme="light"] .callbar button:not(.hangup){background:#e3e5e8;color:#060607}
:root[data-theme="light"] .voice-stage{background:#f2f3f5}
:root[data-theme="light"] .msg-actions{background:#fff!important;border-color:#c7c9cd!important;box-shadow:0 4px 12px #0002}
:root[data-theme="light"] .msg-actions button{color:#2e3338!important}
:root[data-theme="light"] .lightbox-action{background:#2b2d31!important;color:#fff!important}
:root[data-theme="light"] .lightbox-action .app-icon{stroke:#fff!important;color:#fff!important}

/* Mobile: dedicated navigation drawers, touch targets, compact message layout and safe areas. */
@media(max-width:900px){
 .shell{grid-template-columns:64px 250px minmax(0,1fr);grid-template-areas:"rail sidebar header" "rail sidebar main"}
 .header{min-width:0}.header-actions{min-width:0}.search{width:min(180px,24vw)}
 .message{padding-left:10px;padding-right:10px}.composer-wrap{padding-left:10px;padding-right:10px}
}
/* Mobile rule moved to assets/css/mobile.css. */
@media(max-width:390px){
 .message{grid-template-columns:42px minmax(0,1fr);padding-left:4px;padding-right:4px}.message .avatar{width:32px;height:32px}.composer-wrap{padding-left:4px;padding-right:4px}.composer .icon-btn{min-width:34px;width:34px;padding:6px}.header{padding-left:4px;padding-right:4px}.head-title{font-size:14px}
 .sidebar{width:calc(100vw - 64px);left:64px}.rail{width:64px}.userbar{gap:4px;padding-left:5px;padding-right:5px}.userbar .icon-btn{width:30px;padding:5px}
}
@media(max-height:520px) and (orientation:landscape) and (max-width:950px){
 .modal{max-height:100dvh;border-radius:0}.settings-nav{padding-top:4px}.settings-content{padding-top:10px}.voice-stage{inset:48px 0 0!important}.voice-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:6px}.callbar{height:56px}
}

/* v1.35 light-theme foregrounds for unfilled controls */
:root[data-theme="light"] button:is(.icon-btn,.icon-only,.link):not(.primary):not(.danger),
:root[data-theme="light"] a:is(.attachment-download,.icon-only,.link):not(.primary):not(.danger),
:root[data-theme="light"] .msg-actions button,
:root[data-theme="light"] .header-actions button,
:root[data-theme="light"] .composer button,
:root[data-theme="light"] .userbar button,
:root[data-theme="light"] .attachment-caption .attachment-download,
:root[data-theme="light"] .file-attachment .attachment-download,
:root[data-theme="light"] .audio-attachment .attachment-download {
  color:#2e3338!important;
}
:root[data-theme="light"] button:is(.icon-btn,.icon-only,.link):not(.primary):not(.danger) .app-icon,
:root[data-theme="light"] a:is(.attachment-download,.icon-only,.link):not(.primary):not(.danger) .app-icon,
:root[data-theme="light"] .msg-actions button .app-icon,
:root[data-theme="light"] .header-actions button .app-icon,
:root[data-theme="light"] .composer button .app-icon,
:root[data-theme="light"] .userbar button .app-icon,
:root[data-theme="light"] .attachment-caption .attachment-download .app-icon,
:root[data-theme="light"] .file-attachment .attachment-download .app-icon,
:root[data-theme="light"] .audio-attachment .attachment-download .app-icon {
  color:#2e3338!important;
  stroke:#2e3338!important;
}
:root[data-theme="light"] button:is(.icon-btn,.icon-only,.link):not(.primary):not(.danger):hover,
:root[data-theme="light"] a:is(.attachment-download,.icon-only,.link):not(.primary):not(.danger):hover {
  color:#060607!important;
}
:root[data-theme="light"] button:is(.icon-btn,.icon-only,.link):not(.primary):not(.danger):hover .app-icon,
:root[data-theme="light"] a:is(.attachment-download,.icon-only,.link):not(.primary):not(.danger):hover .app-icon {
  color:#060607!important;
  stroke:#060607!important;
}
/* Filled lightbox controls intentionally keep white foregrounds for contrast. */
:root[data-theme="light"] .image-lightbox-toolbar .lightbox-action,
:root[data-theme="light"] .image-lightbox-toolbar .lightbox-action .app-icon {
  color:#fff!important;
  stroke:#fff!important;
}

/* v1.36 modal sizing, complete light theme, consistent controls and mobile usability */
:root{
  --control-height:40px;
  --mobile-header-height:52px;
}

/* Dialogs use the available viewport instead of being constrained by the legacy 500px base modal. */
.modal:has(.manager-window),
.modal:has(.channel-manager),
.modal:has(.category-manager),
.modal:has(.channel-settings-box),
.modal:has(.profile-card),
.modal:has(.group-editor),
.modal:has(.messagebox){
  width:min(760px,calc(100vw - 32px));
  max-width:calc(100vw - 32px);
}
.modal:has(.manager-window),
.modal:has(.channel-manager),
.modal:has(.category-manager){
  width:min(920px,calc(100vw - 32px));
}
.modal .manager-window,
.modal .channel-manager,
.modal .category-manager,
.modal .channel-settings-box,
.modal .messagebox,
.modal .profile-card,
.modal .group-editor{
  width:100%;
  min-width:0;
  max-width:none;
}
.modal:has(.app-settings){
  width:min(1180px,calc(100vw - 24px));
  height:min(820px,calc(100dvh - 24px));
  max-height:calc(100dvh - 24px);
}
.app-settings,.user-settings-shell{width:100%;max-width:none}
.settings-content{width:100%;max-width:none}

/* Standard controls only. Do not globally restyle navigation, channel, menu, or message buttons. */
.field:not(textarea),
select.field,
.primary,
.secondary,
.danger-button,
.settings-list > button,
.messagebox-actions > button,
.manager-window .row > button{
  min-height:var(--control-height);
}
.primary,.secondary,.danger-button,.messagebox-actions>button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1.1;
  padding-inline:14px;
}
textarea.field{min-height:96px;padding-block:10px}
.inline>button,.row>button,.messagebox-actions>button{flex:none}

/* Full light-mode surface audit. */
:root[data-theme="light"] .app-skeleton,
:root[data-theme="light"] .sk-main{background:#f2f3f5!important}
:root[data-theme="light"] .sk-rail{background:#d7d9dc!important}
:root[data-theme="light"] .sk-side,
:root[data-theme="light"] .sk-members{background:#e3e5e8!important}
:root[data-theme="light"] .sk-rail::before,
:root[data-theme="light"] .sk-rail::after,
:root[data-theme="light"] .sk-main b{background:#c9ccd1!important}
:root[data-theme="light"] .sk-side i,
:root[data-theme="light"] .sk-members i,
:root[data-theme="light"] .sk-main span{
  background:linear-gradient(90deg,#d4d7dc,#eef0f2,#d4d7dc)!important;
  background-size:220% 100%!important;
}
:root[data-theme="light"] .profile-role{
  background:#ebedef!important;
  color:#2e3338!important;
  border-color:#c7c9cd!important;
}
:root[data-theme="light"] .server-menu-popover{
  background:#fff!important;
  color:#2e3338!important;
  border-color:#c7c9cd!important;
  box-shadow:0 12px 28px rgba(30,31,34,.18)!important;
}
:root[data-theme="light"] .server-menu-popover button{
  background:transparent!important;
  color:#2e3338!important;
}
:root[data-theme="light"] .server-menu-popover button:hover{
  background:var(--accent)!important;
  color:#fff!important;
}
:root[data-theme="light"] .context-separator,
:root[data-theme="light"] .presence-separator{background:#c7c9cd!important}

/* Neutral buttons must not retain dark-mode fills in light mode. */
:root[data-theme="light"] button:not(.primary):not(.danger):not(.danger-button):not(.hangup):not(.server-btn.active):not(.server-btn.home),
:root[data-theme="light"] .secondary,
:root[data-theme="light"] .icon-btn,
:root[data-theme="light"] .icon-only,
:root[data-theme="light"] .tiny-add,
:root[data-theme="light"] .drag-handle{
  color:#2e3338;
}
:root[data-theme="light"] .secondary,
:root[data-theme="light"] button.neutral,
:root[data-theme="light"] .settings-list button:not(.danger-button),
:root[data-theme="light"] .role-order-controls button,
:root[data-theme="light"] .messagebox-cancel{
  background:#e3e5e8!important;
  color:#2e3338!important;
  border:1px solid #c7c9cd!important;
}
:root[data-theme="light"] .secondary:hover,
:root[data-theme="light"] button.neutral:hover,
:root[data-theme="light"] .settings-list button:not(.danger-button):hover,
:root[data-theme="light"] .role-order-controls button:hover,
:root[data-theme="light"] .messagebox-cancel:hover{
  background:#d4d7dc!important;
  color:#060607!important;
}
:root[data-theme="light"] .danger-button,
:root[data-theme="light"] .danger,
:root[data-theme="light"] .hangup{background:var(--app-button-danger)!important;color:#fff!important}
:root[data-theme="light"] .primary{background:var(--app-button-primary-bg)!important;color:#fff!important}
:root[data-theme="light"] .modal .close{background:transparent!important;color:#4e5058!important}
:root[data-theme="light"] .modal .close:hover{background:#e3e5e8!important;color:#060607!important}
:root[data-theme="light"] .role-list-panel,
:root[data-theme="light"] .role-editor,
:root[data-theme="light"] .settings-nav,
:root[data-theme="light"] .settings-content,
:root[data-theme="light"] .manager-window,
:root[data-theme="light"] .channel-settings-box,
:root[data-theme="light"] .group-friend-list,
:root[data-theme="light"] .group-friend,
:root[data-theme="light"] .sortable-row,
:root[data-theme="light"] .category-order-group,
:root[data-theme="light"] .channel-order-group{
  color:#2e3338!important;
  border-color:#c7c9cd!important;
}

/* Mobile layout: application-style focused chat with off-canvas navigation and device-safe sizing. */
/* Mobile rule moved to assets/css/mobile.css. */
@media(max-width:480px){
  .header-actions .icon-btn{min-width:38px;width:38px;padding:7px}
  .header-actions{gap:0}
  .rail{width:64px;max-width:64px}.sidebar{left:64px;width:calc(100vw - 64px);max-width:calc(100vw - 64px)}
  .message{grid-template-columns:40px minmax(0,1fr);padding-inline:5px}.message .avatar{width:32px;height:32px}
  .composer-wrap{padding-inline:5px}.composer{border-radius:10px}
  .modal{padding-inline:12px}
  .settings-content,.user-settings-shell .settings-content{padding-inline:12px}
  .account-main{padding-inline:12px}.account-main .avatar.large{width:72px;height:72px}
  .messagebox-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.messagebox-actions>*{width:100%}
  .image-lightbox-toolbar{min-height:46px!important;padding:4px!important}.lightbox-action{width:40px!important;height:40px!important}
}
@media(max-width:360px){
  .header-actions .icon-btn{min-width:34px;width:34px}.head-title{font-size:13px}
  .composer .icon-btn{min-width:32px;width:32px;padding:5px}
  .userbar .icon-btn{width:28px;min-width:28px;padding:4px}
  .settings-nav button{padding-inline:9px}
}
@media(max-height:500px) and (orientation:landscape) and (max-width:950px){
  .modal-backdrop{align-items:stretch}.modal{height:100dvh;max-height:100dvh;border-radius:0;overflow:auto}
  .settings-nav{min-height:50px}.voice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.video-tile{min-height:180px}
}


/* v1.37 desktop layout safeguard: mobile drawer rules never alter desktop geometry. */
@media (min-width:901px){
  .shell{
    height:100%;
    display:grid;
    grid-template-columns:72px 260px minmax(360px,1fr) 240px;
    grid-template-rows:48px minmax(0,1fr);
    grid-template-areas:"rail sidebar header header" "rail sidebar main members";
    position:relative;
    overflow:hidden;
  }
  .rail{grid-area:rail;position:static;width:auto;max-width:none;transform:none;z-index:auto}
  .sidebar{grid-area:sidebar;position:static;left:auto;top:auto;bottom:auto;width:auto;max-width:none;transform:none;z-index:auto;box-shadow:none}
  .header{grid-area:header;height:48px;min-height:48px;padding-top:0}
  .main{grid-area:main;min-width:0}
  .members{grid-area:members;display:block;position:static;width:auto;max-width:none;transform:none;z-index:auto;box-shadow:none}
  .mobile-backdrop,.mobile-menu{display:none!important}
  .voice-stage{inset:48px 240px 0 332px}
  .shell.members-hidden{grid-template-columns:72px 260px minmax(360px,1fr) 0!important}
  .modal-backdrop{align-items:center;padding:12px}
  .modal{border-radius:10px}
}
@media (min-width:701px) and (max-width:900px){
  .shell{
    grid-template-columns:64px 240px minmax(0,1fr);
    grid-template-rows:48px minmax(0,1fr);
    grid-template-areas:"rail sidebar header" "rail sidebar main";
  }
  .rail,.sidebar,.header,.main{position:static;transform:none}
  .members{display:none}
  .voice-stage{inset:48px 0 0 304px}
}

/* v1.38 alignment, modal sizing, complete light-mode and voice control states */
.inline,
.row,
.actions,
.friend .actions,
.header-actions,
.account-detail-row,
.audio-file-head,
.media-file-head,
.attachment-caption,
.messagebox-actions,
.role-order-controls,
.custom-status-row{
  align-items:center;
}
.inline > .field,
.inline > input,
.inline > select,
.inline > button,
.row > .field,
.row > input,
.row > select,
.row > button{
  min-height:var(--control-height);
}
.inline > button,
.row > button,
.actions > button,
.account-detail-row > button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  vertical-align:middle;
}

.modal.modal-medium{
  width:min(700px,calc(100vw - 32px));
  max-width:calc(100vw - 32px);
}
.modal.modal-wide{
  width:min(1040px,calc(100vw - 24px));
  height:min(860px,calc(100dvh - 24px));
  max-width:calc(100vw - 24px);
  max-height:calc(100dvh - 24px);
}
.modal.modal-full{
  width:min(1220px,calc(100vw - 20px));
  height:min(900px,calc(100dvh - 20px));
  max-width:calc(100vw - 20px);
  max-height:calc(100dvh - 20px);
  overflow:hidden;
  padding:0;
}
.modal.modal-wide > .manager-window,
.modal.modal-wide > .channel-manager,
.modal.modal-wide > .category-manager,
.modal.modal-wide > .channel-settings-box,
.modal.modal-wide > .group-editor,
.modal.modal-full > .app-settings,
.modal.modal-full > .user-settings-shell{
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
}

.userbar-mute,
.userbar-deafen{position:relative;color:var(--text)}
.userbar-mute.active,
.userbar-deafen.active{color:#f23f42!important}
.userbar-mute.active::after,
.userbar-deafen.active::after{
  content:"";
  position:absolute;
  left:5px;
  right:5px;
  top:50%;
  height:2px;
  border-radius:2px;
  background:currentColor;
  transform:rotate(-45deg);
  transform-origin:center;
  pointer-events:none;
}

/* Complete light-mode override layer for remaining hard-coded dark surfaces. */
:root[data-theme="light"] .auth,
:root[data-theme="light"] .splash{background:radial-gradient(circle at 20% 10%,#dfe3ff,#f2f3f5 48%)!important}
:root[data-theme="light"] .userbar,
:root[data-theme="light"] .sidebar-title,
:root[data-theme="light"] .sidebar-scroll,
:root[data-theme="light"] .settings-nav,
:root[data-theme="light"] .replying{background:#e3e5e8!important;color:#2e3338!important}
:root[data-theme="light"] .profile-custom-status,
:root[data-theme="light"] .group-friend-list,
:root[data-theme="light"] .profile-preview-card,
:root[data-theme="light"] .account-hero,
:root[data-theme="light"] .account-avatar-wrap,
:root[data-theme="light"] .account-details,
:root[data-theme="light"] .account-card,
:root[data-theme="light"] .voice-settings-card,
:root[data-theme="light"] .role-list-panel,
:root[data-theme="light"] .role-editor,
:root[data-theme="light"] .manager-window,
:root[data-theme="light"] .channel-manager,
:root[data-theme="light"] .category-manager,
:root[data-theme="light"] .channel-settings-box,
:root[data-theme="light"] .group-editor,
:root[data-theme="light"] .sortable-row,
:root[data-theme="light"] .role-row,
:root[data-theme="light"] .permission-row,
:root[data-theme="light"] .audio-attachment,
:root[data-theme="light"] .file-attachment,
:root[data-theme="light"] .video-attachment,
:root[data-theme="light"] .pending-attachment:not(:empty),
:root[data-theme="light"] .broadcast-placeholder{
  background:#fff!important;
  color:#2e3338!important;
  border-color:#c7c9cd!important;
}
:root[data-theme="light"] .profile-preview-body .avatar.large{border-color:#fff!important}
:root[data-theme="light"] .profile-avatar-wrap .avatar.large{border-color:#fff!important}
:root[data-theme="light"] .profile-section,
:root[data-theme="light"] .friend,
:root[data-theme="light"] .account-detail-row,
:root[data-theme="light"] .settings-card,
:root[data-theme="light"] .settings-content,
:root[data-theme="light"] .modal,
:root[data-theme="light"] .context-menu,
:root[data-theme="light"] .presence-popover,
:root[data-theme="light"] .server-menu-popover{
  border-color:#c7c9cd!important;
}
:root[data-theme="light"] .video-tile,
:root[data-theme="light"] .callbar button:not(.hangup),
:root[data-theme="light"] .msg-actions,
:root[data-theme="light"] .reaction,
:root[data-theme="light"] .emoji-picker,
:root[data-theme="light"] .emoji-grid,
:root[data-theme="light"] .emoji-search,
:root[data-theme="light"] .context-submenu{
  background:#fff!important;
  color:#2e3338!important;
  border-color:#c7c9cd!important;
}
:root[data-theme="light"] button:not(.primary):not(.danger):not(.danger-button):not(.hangup):not(.server-btn.home):not(.server-btn.active),
:root[data-theme="light"] .icon-btn,
:root[data-theme="light"] .secondary,
:root[data-theme="light"] .tiny-add,
:root[data-theme="light"] .drag-handle,
:root[data-theme="light"] .attachment-download{
  color:#2e3338!important;
}
:root[data-theme="light"] .secondary,
:root[data-theme="light"] .neutral,
:root[data-theme="light"] .role-order-controls button,
:root[data-theme="light"] .messagebox-cancel,
:root[data-theme="light"] .callbar button:not(.hangup){
  background:#e3e5e8!important;
  color:#2e3338!important;
  border-color:#c7c9cd!important;
}
:root[data-theme="light"] .secondary:hover,
:root[data-theme="light"] .neutral:hover,
:root[data-theme="light"] .role-order-controls button:hover,
:root[data-theme="light"] .messagebox-cancel:hover,
:root[data-theme="light"] .icon-btn:hover{
  background:#d4d7dc!important;
  color:#060607!important;
}
:root[data-theme="light"] .userbar-mute.active,
:root[data-theme="light"] .userbar-deafen.active{color:#da373c!important}
:root[data-theme="light"] .message:hover{background:#e9eaec!important}
:root[data-theme="light"] .video-label{background:rgba(255,255,255,.9)!important;color:#060607!important}
:root[data-theme="light"] .error{background:#f5c2c4!important;color:#5f171b!important}

/* Mobile rule moved to assets/css/mobile.css. */

/* v1.39 application-style settings, aliases, role manager and final layout corrections */
:root{--settings-nav-width:232px;--app-danger:var(--danger);--app-button-height:36px;--app-button-radius:4px;--app-button-font-weight:600;--app-button-primary-bg:var(--accent);--app-button-primary-hover:color-mix(in srgb,var(--accent) 86%,#000);--app-button-primary-text:#fff;--app-button-secondary-bg:var(--neutral-button-bg,var(--input));--app-button-secondary-hover:var(--neutral-button-hover,var(--hover));--app-button-secondary-border:var(--neutral-button-border,color-mix(in srgb,var(--muted) 20%,transparent));--app-button-secondary-text:var(--strong);--app-button-danger:var(--danger);--app-button-danger-soft:color-mix(in srgb,var(--danger) 16%,transparent);--app-button-focus:color-mix(in srgb,var(--accent) 78%,#fff);}

/* Settings are a single bounded desktop surface with a fixed navigation rail and one close icon. */
.modal.modal-full{
  width:min(1180px,calc(100vw - 64px));
  height:min(860px,calc(100dvh - 64px));
  padding:0!important;
  overflow:hidden;
  border-radius:12px;
}
.modal.modal-full>.close{
  position:absolute;
  z-index:20;
  top:18px;
  right:20px;
  width:36px;
  height:36px;
  border:2px solid var(--muted);
  border-radius:50%;
  display:grid;
  place-items:center;
  background:transparent;
}
.app-settings,.user-settings-shell{
  display:grid!important;
  grid-template-columns:var(--settings-nav-width) minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr)!important;
  width:100%;
  height:100%;
  min-height:0;
  overflow:hidden;
}
.settings-nav{
  width:auto!important;
  min-width:0;
  padding:58px 12px 24px 20px;
  overflow-y:auto;
  overflow-x:hidden;
  align-content:start;
}
.settings-nav button{
  width:100%;
  min-height:34px!important;
  height:34px;
  padding:6px 10px;
  border-radius:4px;
  background:transparent!important;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  text-align:left;
  line-height:20px;
}
.settings-nav button.active{background:var(--hover)!important;color:var(--text)!important}
.settings-content{
  min-width:0;
  min-height:0;
  overflow:auto;
  padding:54px clamp(28px,5vw,72px) 72px;
}
.settings-content>h2,.settings-page-head{padding-right:52px}
.settings-page-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px}

/* Generic modal content should use the actual available area. */
.modal.modal-wide{width:min(960px,calc(100vw - 48px));height:auto;max-height:calc(100dvh - 48px);overflow:auto}
.modal.modal-medium{width:min(620px,calc(100vw - 48px));max-height:calc(100dvh - 48px);overflow:auto}
.modal-wide>.manager-window,.modal-wide>.channel-manager,.modal-wide>.category-manager,.modal-wide>.channel-settings-box,.modal-wide>.group-editor{height:auto!important;min-height:0}
.member-role-manager{display:flex;flex-direction:column;min-height:min(560px,70dvh)}
.member-role-list{display:flex;flex-direction:column;gap:2px;overflow:auto;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:8px 0;flex:1}
.member-role-option{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;border-radius:4px;cursor:pointer}
.member-role-option:hover{background:var(--hover)}
.member-role-option.disabled{opacity:.45;cursor:not-allowed}
.member-role-option>span{display:flex;align-items:center;gap:10px;min-width:0}
.member-role-option i{width:12px;height:12px;border-radius:50%;background:var(--role-color,#99aab5)}
.member-role-option input{width:20px;height:20px}
.modal-footer{display:flex;justify-content:flex-end;padding-top:16px}

/* application-style outlined destructive action. */
.danger-button,.danger-text{
  background:transparent!important;
  color:var(--app-danger)!important;
  border:1px solid var(--app-danger)!important;
  box-shadow:none!important;
}
.danger-button:hover,.danger-text:hover{
  background:var(--app-danger)!important;
  color:#fff!important;
  border-color:var(--app-danger)!important;
}

/* Final light-theme settings/menu coverage. */
:root[data-theme="light"] .settings-nav{background:#e3e5e8!important;color:#4e5058!important}
:root[data-theme="light"] .settings-nav button{background:transparent!important;color:#4e5058!important}
:root[data-theme="light"] .settings-nav button:hover{background:#d4d7dc!important;color:#060607!important}
:root[data-theme="light"] .settings-nav button.active{background:#cfd2d7!important;color:#060607!important}
:root[data-theme="light"] .settings-content,
:root[data-theme="light"] .app-settings,
:root[data-theme="light"] .user-settings-shell,
:root[data-theme="light"] .member-role-manager{background:#fff!important;color:#2e3338!important}
:root[data-theme="light"] .member-role-option:hover{background:#e3e5e8!important}
:root[data-theme="light"] .modal.modal-full>.close{color:#4e5058!important;border-color:#b5bac1!important;background:#fff!important}
:root[data-theme="light"] .modal.modal-full>.close:hover{background:#e3e5e8!important;color:#060607!important}
:root[data-theme="light"] .danger-button,
:root[data-theme="light"] .danger-text{background:transparent!important;color:var(--app-button-danger)!important;border-color:var(--app-button-danger)!important}
:root[data-theme="light"] .danger-button:hover,
:root[data-theme="light"] .danger-text:hover{background:var(--app-button-danger)!important;color:#fff!important}

/* Inline action alignment. */
.inline,.actions,.messagebox-actions,.role-editor-actions,.voice-settings-actions,.invite-row>div:last-child,.danger-row{display:flex;align-items:center;gap:8px}
.inline>button,.actions>button,.messagebox-actions>button,.role-editor-actions>button,.voice-settings-actions>button,.invite-row button,.danger-row button{align-self:center}

/* Mobile rule moved to assets/css/mobile.css. */

/* v1.40 — application-style destructive text actions */
.presence-popover .presence-logout,
.context-menu button[data-key="kick"],
.context-menu button[data-key="ban"]{
  background:transparent!important;
  border:0!important;
  color:var(--app-button-danger)!important;
  box-shadow:none!important;
}
.presence-popover .presence-logout .app-icon,
.context-menu button[data-key="kick"] .app-icon,
.context-menu button[data-key="ban"] .app-icon{
  color:inherit!important;
  stroke:currentColor!important;
}
.presence-popover .presence-logout:hover,
.presence-popover .presence-logout:focus-visible,
.context-menu button[data-key="kick"]:hover,
.context-menu button[data-key="kick"]:focus-visible,
.context-menu button[data-key="ban"]:hover,
.context-menu button[data-key="ban"]:focus-visible{
  background:var(--app-button-danger)!important;
  border:0!important;
  color:#fff!important;
}
:root[data-theme="light"] .presence-popover .presence-logout,
:root[data-theme="light"] .context-menu button[data-key="kick"],
:root[data-theme="light"] .context-menu button[data-key="ban"]{
  background:transparent!important;
  border:0!important;
  color:var(--app-button-danger)!important;
}
:root[data-theme="light"] .presence-popover .presence-logout:hover,
:root[data-theme="light"] .presence-popover .presence-logout:focus-visible,
:root[data-theme="light"] .context-menu button[data-key="kick"]:hover,
:root[data-theme="light"] .context-menu button[data-key="kick"]:focus-visible,
:root[data-theme="light"] .context-menu button[data-key="ban"]:hover,
:root[data-theme="light"] .context-menu button[data-key="ban"]:focus-visible{
  background:var(--app-button-danger)!important;
  color:#fff!important;
}

/* v1.41 — unified application-style danger actions */
button.danger-button,
button.danger-text,
.context-menu button.danger,
.server-menu-popover button.danger,
.presence-popover button.presence-logout {
  background:transparent!important;
  border:0!important;
  color:var(--app-button-danger)!important;
  box-shadow:none!important;
}
button.danger-button *,
button.danger-text *,
.context-menu button.danger *,
.server-menu-popover button.danger *,
.presence-popover button.presence-logout * {
  color:inherit!important;
  stroke:currentColor!important;
}
button.danger-button:hover,
button.danger-button:focus-visible,
button.danger-text:hover,
button.danger-text:focus-visible,
.context-menu button.danger:hover,
.context-menu button.danger:focus-visible,
.server-menu-popover button.danger:hover,
.server-menu-popover button.danger:focus-visible,
.presence-popover button.presence-logout:hover,
.presence-popover button.presence-logout:focus-visible {
  background:var(--app-button-danger)!important;
  border:0!important;
  color:#fff!important;
}
:root[data-theme="light"] button.danger-button,
:root[data-theme="light"] button.danger-text,
:root[data-theme="light"] .context-menu button.danger,
:root[data-theme="light"] .server-menu-popover button.danger,
:root[data-theme="light"] .presence-popover button.presence-logout {
  background:transparent!important;
  border:0!important;
  color:var(--app-button-danger)!important;
}
:root[data-theme="light"] button.danger-button:hover,
:root[data-theme="light"] button.danger-button:focus-visible,
:root[data-theme="light"] button.danger-text:hover,
:root[data-theme="light"] button.danger-text:focus-visible,
:root[data-theme="light"] .context-menu button.danger:hover,
:root[data-theme="light"] .context-menu button.danger:focus-visible,
:root[data-theme="light"] .server-menu-popover button.danger:hover,
:root[data-theme="light"] .server-menu-popover button.danger:focus-visible,
:root[data-theme="light"] .presence-popover button.presence-logout:hover,
:root[data-theme="light"] .presence-popover button.presence-logout:focus-visible {
  background:var(--app-button-danger)!important;
  border:0!important;
  color:#fff!important;
}

/* v1.42 — bordered danger buttons outside menus */
button.danger-button,
button.danger-text {
  border:1px solid var(--app-button-danger)!important;
}
button.danger-button:hover,
button.danger-button:focus-visible,
button.danger-text:hover,
button.danger-text:focus-visible {
  border-color:var(--app-button-danger)!important;
}
:root[data-theme="light"] button.danger-button,
:root[data-theme="light"] button.danger-text {
  border:1px solid var(--app-button-danger)!important;
}

/* Menu danger actions stay borderless. */
.context-menu button.danger,
.context-menu button.danger-button,
.context-menu button.danger-text,
.server-menu-popover button.danger,
.server-menu-popover button.danger-button,
.server-menu-popover button.danger-text,
.presence-popover button.presence-logout,
.presence-popover button.danger,
.presence-popover button.danger-button,
.presence-popover button.danger-text {
  border:0!important;
}

/* v1.43 — logout must match menu danger actions exactly */
.presence-popover > button.presence-logout,
:root[data-theme="light"] .presence-popover > button.presence-logout {
  background: transparent !important;
  border: 0 !important;
  color: var(--app-button-danger) !important;
  -webkit-text-fill-color: var(--app-button-danger) !important;
}
.presence-popover > button.presence-logout > span,
.presence-popover > button.presence-logout > span > strong,
.presence-popover > button.presence-logout > span > small,
.presence-popover > button.presence-logout > .app-icon,
.presence-popover > button.presence-logout > .app-icon * {
  color: inherit !important;
  fill: none !important;
  stroke: currentColor !important;
  -webkit-text-fill-color: currentColor !important;
}
.presence-popover > button.presence-logout:hover,
.presence-popover > button.presence-logout:focus-visible,
:root[data-theme="light"] .presence-popover > button.presence-logout:hover,
:root[data-theme="light"] .presence-popover > button.presence-logout:focus-visible {
  background: var(--app-button-danger) !important;
  border: 0 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

/* v1.44 — definitive presence-menu logout danger styling */
html body .presence-popover > button.presence-logout.danger-text,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  outline-color: var(--app-button-danger) !important;
  box-shadow: none !important;
  color: var(--app-button-danger) !important;
  -webkit-text-fill-color: var(--app-button-danger) !important;
}
html body .presence-popover > button.presence-logout.danger-text > span,
html body .presence-popover > button.presence-logout.danger-text > span > strong,
html body .presence-popover > button.presence-logout.danger-text > span > small,
html body .presence-popover > button.presence-logout.danger-text > svg,
html body .presence-popover > button.presence-logout.danger-text > svg *,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text > span,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text > span > strong,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text > span > small,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text > svg,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text > svg * {
  color: var(--app-button-danger) !important;
  -webkit-text-fill-color: var(--app-button-danger) !important;
  stroke: var(--app-button-danger) !important;
}
html body .presence-popover > button.presence-logout.danger-text:hover,
html body .presence-popover > button.presence-logout.danger-text:focus-visible,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text:hover,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text:focus-visible {
  background-color: var(--app-button-danger) !important;
  background-image: none !important;
  border: 0 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
html body .presence-popover > button.presence-logout.danger-text:hover > span,
html body .presence-popover > button.presence-logout.danger-text:hover > span > strong,
html body .presence-popover > button.presence-logout.danger-text:hover > span > small,
html body .presence-popover > button.presence-logout.danger-text:hover > svg,
html body .presence-popover > button.presence-logout.danger-text:hover > svg *,
html body .presence-popover > button.presence-logout.danger-text:focus-visible > span,
html body .presence-popover > button.presence-logout.danger-text:focus-visible > span > strong,
html body .presence-popover > button.presence-logout.danger-text:focus-visible > span > small,
html body .presence-popover > button.presence-logout.danger-text:focus-visible > svg,
html body .presence-popover > button.presence-logout.danger-text:focus-visible > svg *,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text:hover > span,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text:hover > span > strong,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text:hover > span > small,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text:hover > svg,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text:hover > svg *,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text:focus-visible > span,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text:focus-visible > span > strong,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text:focus-visible > span > small,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text:focus-visible > svg,
html[data-theme="light"] body .presence-popover > button.presence-logout.danger-text:focus-visible > svg * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  stroke: #fff !important;
}

/* v1.45 — restore precise alignment for inline action groups */
:root{--inline-control-height:40px}

/* Only genuine horizontal action groups are normalized. */
.inline,
.row,
.actions,
.messagebox-actions,
.modal-footer,
.role-editor-actions,
.voice-settings-actions,
.role-order-controls,
.danger-row,
.invite-row > div:last-child,
.settings-page-head,
.account-detail-row {
  align-items:center;
}

/* Previous settings rules added top margins to primary buttons inside rows. */
.inline > button,
.row > button,
.actions > button,
.messagebox-actions > button,
.modal-footer > button,
.role-editor-actions > button,
.voice-settings-actions > button,
.role-order-controls > button,
.danger-row > button,
.invite-row > div:last-child > button,
.settings-page-head > button,
.account-detail-row > button,
.settings-content .inline > .primary,
.settings-content .row > .primary,
.settings-content .actions > .primary,
.settings-content .messagebox-actions > .primary,
.settings-content .modal-footer > .primary,
.settings-content .role-editor-actions > .primary,
.settings-content .voice-settings-actions > .primary,
.settings-content .role-order-controls > .primary,
.settings-content .danger-row > .primary,
.settings-content .settings-page-head > .primary,
.settings-content .account-detail-row > .primary {
  margin-top:0!important;
  margin-bottom:0!important;
  align-self:center!important;
  vertical-align:middle;
}

/* Standard text/action controls in the same row share one box model. */
.inline > :is(input.field,select.field,button.primary,button.secondary,button.danger-button),
.row > :is(input.field,select.field,button.primary,button.secondary,button.danger-button),
.messagebox-actions > :is(button.primary,button.secondary,button.danger-button),
.modal-footer > :is(button.primary,button.secondary,button.danger-button),
.role-editor-actions > :is(button.primary,button.secondary,button.danger-button),
.voice-settings-actions > :is(button.primary,button.secondary,button.danger-button),
.danger-row > :is(button.primary,button.secondary,button.danger-button),
.invite-row > div:last-child > :is(button.primary,button.secondary,button.danger-button),
.account-detail-row > :is(button.primary,button.secondary,button.danger-button) {
  height:var(--inline-control-height)!important;
  min-height:var(--inline-control-height)!important;
  padding-top:0!important;
  padding-bottom:0!important;
  line-height:normal!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

/* Prevent labels/wrappers from shifting one control relative to its neighbours. */
.inline > label,
.row > label {
  margin-top:0;
  margin-bottom:0;
  align-self:center;
}
.inline > *,
.row > *,
.actions > *,
.messagebox-actions > *,
.modal-footer > *,
.role-editor-actions > *,
.voice-settings-actions > *,
.role-order-controls > *,
.danger-row > * {
  box-sizing:border-box;
}

/* Compact/icon controls intentionally retain their own dimensions. */
.inline > .icon-btn,
.row > .icon-btn,
.actions > .icon-btn,
.role-order-controls > button,
.messagebox-actions > .icon-btn,
.modal-footer > .icon-btn {
  height:auto!important;
  min-height:0!important;
  padding-top:7px!important;
  padding-bottom:7px!important;
}

/* Mobile rule moved to assets/css/mobile.css. */

/* v1.46 — modal close controls always belong to and are positioned by their modal container */
.modal-backdrop > .modal{
  position:relative;
  float:none;
  isolation:isolate;
}
.modal-backdrop > .modal > .close{
  position:absolute;
  top:14px;
  right:14px;
  z-index:30;
  float:none!important;
  margin:0!important;
  flex:0 0 auto;
  display:inline-grid;
  place-items:center;
  width:36px;
  height:36px;
  min-width:36px;
  min-height:36px;
  padding:0;
  border-radius:50%;
  transform:none;
}
.modal-backdrop > .modal:not(.modal-full):not(.image-lightbox-modal){
  padding-top:24px;
}
.modal-backdrop > .modal:not(.modal-full):not(.image-lightbox-modal) > :not(.close){
  width:100%;
  min-width:0;
}
.modal-backdrop > .modal.modal-medium,
.modal-backdrop > .modal.modal-wide{
  display:flex;
  flex-direction:column;
}
.modal-backdrop > .modal.modal-wide > :not(.close),
.modal-backdrop > .modal.modal-medium > :not(.close){
  min-height:0;
}
.modal-backdrop > .modal.modal-wide > .manager-window,
.modal-backdrop > .modal.modal-wide > .channel-manager,
.modal-backdrop > .modal.modal-wide > .category-manager,
.modal-backdrop > .modal.modal-wide > .channel-settings-box,
.modal-backdrop > .modal.modal-wide > .group-editor{
  flex:1 1 auto;
  overflow:auto;
}
/* Full settings close button is inside the bounded settings modal, not the backdrop. */
.modal-backdrop > .modal.modal-full > .close{
  position:absolute!important;
  top:18px!important;
  right:20px!important;
}
/* The image viewer owns its toolbar close control; suppress the generic modal close. */
.image-lightbox-backdrop > .modal > .close{
  display:none!important;
}
/* Mobile rule moved to assets/css/mobile.css. */

/* v1.47 — danger/red-text button foreground always overrides theme rules */
button:is(.danger,.danger-button,.danger-text),
.context-menu button:is(.danger,.danger-button,.danger-text),
.server-menu-popover button:is(.danger,.danger-button,.danger-text),
.presence-popover button:is(.danger,.danger-button,.danger-text) {
  color:var(--app-button-danger,var(--app-danger))!important;
  -webkit-text-fill-color:var(--app-button-danger,var(--app-danger))!important;
}
button:is(.danger,.danger-button,.danger-text) :is(span,strong,small,i,b),
.context-menu button:is(.danger,.danger-button,.danger-text) :is(span,strong,small,i,b),
.server-menu-popover button:is(.danger,.danger-button,.danger-text) :is(span,strong,small,i,b),
.presence-popover button:is(.danger,.danger-button,.danger-text) :is(span,strong,small,i,b) {
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}
button:is(.danger,.danger-button,.danger-text) svg,
button:is(.danger,.danger-button,.danger-text) svg *,
.context-menu button:is(.danger,.danger-button,.danger-text) svg,
.context-menu button:is(.danger,.danger-button,.danger-text) svg *,
.server-menu-popover button:is(.danger,.danger-button,.danger-text) svg,
.server-menu-popover button:is(.danger,.danger-button,.danger-text) svg *,
.presence-popover button:is(.danger,.danger-button,.danger-text) svg,
.presence-popover button:is(.danger,.danger-button,.danger-text) svg * {
  color:inherit!important;
  fill:currentColor!important;
  stroke:currentColor!important;
}
button:is(.danger,.danger-button,.danger-text):is(:hover,:focus-visible),
.context-menu button:is(.danger,.danger-button,.danger-text):is(:hover,:focus-visible),
.server-menu-popover button:is(.danger,.danger-button,.danger-text):is(:hover,:focus-visible),
.presence-popover button:is(.danger,.danger-button,.danger-text):is(:hover,:focus-visible) {
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* v1.48 — modal content fills the available modal container */
.modal-backdrop > .modal.modal-full,
.modal-backdrop > .modal.modal-wide{
  min-width:0;
  min-height:0;
}
.modal-backdrop > .modal.modal-full{
  display:flex;
  flex-direction:column;
}
.modal-backdrop > .modal.modal-full > :not(.close){
  flex:1 1 auto;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
}
.modal-backdrop > .modal.modal-full .app-settings,
.modal-backdrop > .modal.modal-full .user-settings-shell{
  flex:1 1 auto;
  width:100%!important;
  height:100%!important;
  min-width:0;
  min-height:0;
}
.modal-backdrop > .modal.modal-full .settings-content{
  width:100%;
  max-width:none!important;
  min-width:0;
  min-height:0;
  align-self:stretch;
}
.modal-backdrop > .modal.modal-full .settings-content > *{
  max-width:none;
}
.modal-backdrop > .modal.modal-wide{
  height:min(820px,calc(100dvh - 48px));
  max-height:calc(100dvh - 48px);
  overflow:hidden;
}
.modal-backdrop > .modal.modal-wide > :not(.close){
  flex:1 1 auto;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
}
.modal-backdrop > .modal.modal-wide > :is(.manager-window,.channel-manager,.category-manager,.channel-settings-box,.group-editor){
  display:flex;
  flex-direction:column;
  width:100%;
  height:100%!important;
  min-width:0;
  min-height:0;
  overflow:hidden;
}
.modal-backdrop > .modal.modal-wide > :is(.manager-window,.channel-manager,.category-manager,.channel-settings-box,.group-editor) > :is(.settings-list,.sortable-list,.channel-order-sections,.group-friend-list,.member-role-list){
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
}
.modal-backdrop > .modal.modal-wide .modal-footer,
.modal-backdrop > .modal.modal-wide > :is(.manager-window,.channel-manager,.category-manager,.channel-settings-box,.group-editor) > .inline:last-child{
  flex:0 0 auto;
}
/* Mobile rule moved to assets/css/mobile.css. */

/* v1.49: active mute/deafen state must override light/dark theme foreground rules. */
.userbar .userbar-mute.active,
.userbar .userbar-deafen.active,
.userbar .userbar-mute[aria-pressed="true"],
.userbar .userbar-deafen[aria-pressed="true"] {
  color: var(--danger) !important;
  -webkit-text-fill-color: var(--danger) !important;
}
.userbar .userbar-mute.active *,
.userbar .userbar-deafen.active *,
.userbar .userbar-mute[aria-pressed="true"] *,
.userbar .userbar-deafen[aria-pressed="true"] * {
  color: var(--danger) !important;
  fill: currentColor !important;
  stroke: currentColor !important;
  -webkit-text-fill-color: var(--danger) !important;
}
.userbar .userbar-mute.active::after,
.userbar .userbar-deafen.active::after,
.userbar .userbar-mute[aria-pressed="true"]::after,
.userbar .userbar-deafen[aria-pressed="true"]::after {
  background: var(--danger) !important;
}


/* v1.50 — member profile uses the same bounded modal contract as other dialogs */
.modal-backdrop > .modal.modal-profile{
  display:flex;
  flex-direction:column;
  width:min(520px,calc(100vw - 32px));
  max-width:calc(100vw - 32px);
  max-height:min(760px,calc(100dvh - 32px));
  padding:0!important;
  overflow:hidden;
  border-radius:12px;
}
.modal-backdrop > .modal.modal-profile > .profile-card{
  flex:1 1 auto;
  width:100%;
  min-width:0;
  min-height:0;
  max-width:none;
  margin:0!important;
  overflow:auto;
  border-radius:inherit;
}
.modal-backdrop > .modal.modal-profile > .close{
  top:14px!important;
  right:14px!important;
  z-index:50!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:rgba(0,0,0,.48)!important;
  border:1px solid rgba(255,255,255,.24)!important;
  backdrop-filter:blur(8px);
}
.modal-backdrop > .modal.modal-profile > .close:hover,
.modal-backdrop > .modal.modal-profile > .close:focus-visible{
  background:rgba(0,0,0,.72)!important;
}
.modal-profile .profile-banner{
  border-radius:inherit inherit 0 0;
}
.modal-profile .profile-body{
  width:100%;
  min-width:0;
  box-sizing:border-box;
}
/* Mobile rule moved to assets/css/mobile.css. */

/* v1.51 — active mute/deafen keep the original outline icon; only slash + danger color indicate state. */
.userbar .userbar-mute.active,
.userbar .userbar-deafen.active,
.userbar .userbar-mute[aria-pressed="true"],
.userbar .userbar-deafen[aria-pressed="true"] {
  background: transparent !important;
  color: var(--danger) !important;
  -webkit-text-fill-color: var(--danger) !important;
}
.userbar .userbar-mute.active .app-icon,
.userbar .userbar-deafen.active .app-icon,
.userbar .userbar-mute[aria-pressed="true"] .app-icon,
.userbar .userbar-deafen[aria-pressed="true"] .app-icon,
.userbar .userbar-mute.active .app-icon *,
.userbar .userbar-deafen.active .app-icon *,
.userbar .userbar-mute[aria-pressed="true"] .app-icon *,
.userbar .userbar-deafen[aria-pressed="true"] .app-icon * {
  fill: none !important;
  stroke: currentColor !important;
  color: var(--danger) !important;
}

/* v1.52 — keep presence-menu secondary text muted on hover in Light Mode */
:root[data-theme="light"] .presence-popover > button:not(.presence-logout):hover small,
:root[data-theme="light"] .presence-popover > button:not(.presence-logout):focus-visible small {
  color: #5c5f66 !important;
  -webkit-text-fill-color: #5c5f66 !important;
}

/* v1.53: keep custom-status Save text white in every theme/state */
button.primary.save-custom,
button.primary.save-custom:hover,
button.primary.save-custom:focus,
button.primary.save-custom:active,
:root[data-theme="light"] button.primary.save-custom,
:root[data-theme="light"] button.primary.save-custom:hover,
:root[data-theme="light"] button.primary.save-custom:focus,
:root[data-theme="light"] button.primary.save-custom:active {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
button.primary.save-custom *,
:root[data-theme="light"] button.primary.save-custom * {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
}

/* v1.55 — Home application icon always remains white */
.server-btn.home,
.server-btn.home:hover,
.server-btn.home:focus,
.server-btn.home:active,
:root[data-theme="light"] .server-btn.home,
:root[data-theme="light"] .server-btn.home:hover,
:root[data-theme="light"] .server-btn.home:focus,
:root[data-theme="light"] .server-btn.home:active {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
.server-btn.home .app-icon,
.server-btn.home .app-icon *,
:root[data-theme="light"] .server-btn.home .app-icon,
:root[data-theme="light"] .server-btn.home .app-icon * {
  color: #fff !important;
  stroke: #fff !important;
}

/* v1.56 — message composer textarea remains borderless in every theme/state */
.composer textarea,
.composer textarea:hover,
.composer textarea:focus,
.composer textarea:focus-visible,
:root[data-theme="light"] .composer textarea,
:root[data-theme="light"] .composer textarea:hover,
:root[data-theme="light"] .composer textarea:focus,
:root[data-theme="light"] .composer textarea:focus-visible {
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
}

/* v1.57 — message loading skeletons and stable bottom-pinned scrolling */
.message-feed{min-height:100%;display:flex;flex-direction:column;justify-content:flex-end}
.message-skeleton-list{padding:10px 0 18px;pointer-events:none}
.message-skeleton-row{display:grid;grid-template-columns:56px minmax(0,1fr);padding:7px 16px;gap:0}
.message-skeleton-row>i{width:40px;height:40px;border-radius:50%;margin-left:8px;background:linear-gradient(90deg,#34363c,#41444b,#34363c);background-size:220% 100%;animation:skeletonPulse 1.15s linear infinite}
.message-skeleton-row>div{padding-top:2px;max-width:680px}
.message-skeleton-row b,.message-skeleton-row span{display:block;border-radius:5px;background:linear-gradient(90deg,#34363c,#41444b,#34363c);background-size:220% 100%;animation:skeletonPulse 1.15s linear infinite}
.message-skeleton-row b{width:132px;height:13px;margin-bottom:9px}
.message-skeleton-row span{width:min(76%,620px);height:11px;margin-top:7px}
.message-skeleton-row span:last-child{width:min(52%,420px)}
.message-skeleton-row.short span{width:min(46%,360px)}
.message-skeleton-row.short span:last-child{display:none}
:root[data-theme="light"] .message-skeleton-row>i,
:root[data-theme="light"] .message-skeleton-row b,
:root[data-theme="light"] .message-skeleton-row span{background:linear-gradient(90deg,#e3e5e8,#f2f3f5,#e3e5e8);background-size:220% 100%}
/* Mobile rule moved to assets/css/mobile.css. */

/* v1.58 — Lightbox close action must always match toolbar foreground. */
.image-lightbox-toolbar .lightbox-close,
.image-lightbox-toolbar .lightbox-close:hover,
.image-lightbox-toolbar .lightbox-close:focus,
.image-lightbox-toolbar .lightbox-close:active,
:root[data-theme="light"] .image-lightbox-toolbar .lightbox-close,
:root[data-theme="light"] .image-lightbox-toolbar .lightbox-close:hover,
:root[data-theme="light"] .image-lightbox-toolbar .lightbox-close:focus,
:root[data-theme="light"] .image-lightbox-toolbar .lightbox-close:active {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
.image-lightbox-toolbar .lightbox-close span,
.image-lightbox-toolbar .lightbox-close:hover span,
.image-lightbox-toolbar .lightbox-close:focus span,
.image-lightbox-toolbar .lightbox-close:active span,
:root[data-theme="light"] .image-lightbox-toolbar .lightbox-close span,
:root[data-theme="light"] .image-lightbox-toolbar .lightbox-close:hover span,
:root[data-theme="light"] .image-lightbox-toolbar .lightbox-close:focus span,
:root[data-theme="light"] .image-lightbox-toolbar .lightbox-close:active span {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

/* v1.60 — mini voice-channel users use the light theme surface. */
:root[data-theme="light"] .voice-users .mini-user,
:root[data-theme="light"] .mini-user {
  background: transparent !important;
  color: #4e5058 !important;
  border-color: transparent !important;
}
:root[data-theme="light"] .voice-users .mini-user:hover,
:root[data-theme="light"] .voice-users .mini-user:focus-visible,
:root[data-theme="light"] .mini-user:hover,
:root[data-theme="light"] .mini-user:focus-visible {
  background: #d4d7dc !important;
  color: #060607 !important;
}
:root[data-theme="light"] .mini-user.sharing,
:root[data-theme="light"] .mini-user.sharing:hover,
:root[data-theme="light"] .mini-user.sharing:focus-visible,
:root[data-theme="light"] .mini-user.sharing::after {
  color: #1a7f45 !important;
  -webkit-text-fill-color: #1a7f45 !important;
}
:root[data-theme="light"] .mini-user .mini-user-name,
:root[data-theme="light"] .mini-user .voice-share-icon,
:root[data-theme="light"] .mini-user svg,
:root[data-theme="light"] .mini-user svg * {
  color: inherit !important;
  stroke: currentColor !important;
}

/* v1.62 — any control that uses the primary hover/active surface must keep a white foreground. */
button.primary,
button.primary:hover,
button.primary:focus-visible,
button.primary:active,
button.primary *,
.server-btn:hover,
.server-btn.active,
.server-btn:hover *,
.server-btn.active *,
.presence-popover > button:not(.danger):not(.danger-button):not(.danger-text):hover,
.presence-popover > button:not(.danger):not(.danger-button):not(.danger-text):focus-visible,
.presence-popover > button:not(.danger):not(.danger-button):not(.danger-text):hover > :not(small),
.presence-popover > button:not(.danger):not(.danger-button):not(.danger-text):focus-visible > :not(small),
.server-menu-popover button:not(.danger):not(.danger-button):not(.danger-text):hover,
.server-menu-popover button:not(.danger):not(.danger-button):not(.danger-text):focus-visible,
.server-menu-popover button:not(.danger):not(.danger-button):not(.danger-text):hover *,
.server-menu-popover button:not(.danger):not(.danger-button):not(.danger-text):focus-visible *,
.context-menu button:not(.danger):not(.danger-button):not(.danger-text):hover,
.context-menu button:not(.danger):not(.danger-button):not(.danger-text):focus-visible,
.context-menu button:not(.danger):not(.danger-button):not(.danger-text):hover *,
.context-menu button:not(.danger):not(.danger-button):not(.danger-text):focus-visible * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
button.primary svg,
button.primary svg *,
.server-btn:hover svg,
.server-btn:hover svg *,
.server-btn.active svg,
.server-btn.active svg *,
.presence-popover > button:not(.danger):not(.danger-button):not(.danger-text):is(:hover,:focus-visible) svg,
.presence-popover > button:not(.danger):not(.danger-button):not(.danger-text):is(:hover,:focus-visible) svg *,
.server-menu-popover button:not(.danger):not(.danger-button):not(.danger-text):is(:hover,:focus-visible) svg,
.server-menu-popover button:not(.danger):not(.danger-button):not(.danger-text):is(:hover,:focus-visible) svg *,
.context-menu button:not(.danger):not(.danger-button):not(.danger-text):is(:hover,:focus-visible) svg,
.context-menu button:not(.danger):not(.danger-button):not(.danger-text):is(:hover,:focus-visible) svg * {
  color: #fff !important;
  stroke: #fff !important;
}

/* v1.62 — light hover surfaces keep theme-appropriate foregrounds.
   White is reserved for primary/dark hover backgrounds. */
:root[data-theme="light"] .context-menu button:not(.danger):not(.danger-button):not(.danger-text):is(:hover,:focus-visible),
:root[data-theme="light"] .context-menu button:not(.danger):not(.danger-button):not(.danger-text):is(:hover,:focus-visible) *,
:root[data-theme="light"] .presence-popover > button:not(.danger):not(.danger-button):not(.danger-text):not(.presence-logout):is(:hover,:focus-visible),
:root[data-theme="light"] .presence-popover > button:not(.danger):not(.danger-button):not(.danger-text):not(.presence-logout):is(:hover,:focus-visible) > :not(small) {
  color: #060607 !important;
  -webkit-text-fill-color: #060607 !important;
}
:root[data-theme="light"] .context-menu button:not(.danger):not(.danger-button):not(.danger-text):is(:hover,:focus-visible) svg,
:root[data-theme="light"] .context-menu button:not(.danger):not(.danger-button):not(.danger-text):is(:hover,:focus-visible) svg *,
:root[data-theme="light"] .presence-popover > button:not(.danger):not(.danger-button):not(.danger-text):not(.presence-logout):is(:hover,:focus-visible) svg,
:root[data-theme="light"] .presence-popover > button:not(.danger):not(.danger-button):not(.danger-text):not(.presence-logout):is(:hover,:focus-visible) svg * {
  color: #060607 !important;
  stroke: currentColor !important;
}

/* v1.63 — subtle danger-zone surface in both themes. */
.danger-zone {
  background: rgba(242, 63, 66, 0.08) !important;
}
.danger-zone h3 {
  background: rgba(242, 63, 66, 0.06) !important;
}
:root[data-theme="light"] .danger-zone {
  background: rgba(218, 55, 60, 0.075) !important;
}
:root[data-theme="light"] .danger-zone h3 {
  background: rgba(218, 55, 60, 0.055) !important;
}

/* v1.64 — unread messages and application-style in-app notifications */
.channel { position: relative; }
.channel.has-unread { color: var(--text, #f2f3f5); font-weight: 600; }
.unread-badge {
  margin-left: auto;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  background: #f23f42;
  color: #fff !important;
  font-size: 11px;
  font-weight: 700;
  line-height: 18px;
}
.unread-badge[hidden] { display: none !important; }
.server-btn { position: relative; }
.server-unread-dot {
  position: absolute;
  top: -1px;
  right: -1px;
  width: 12px;
  height: 12px;
  border: 3px solid var(--rail-bg, #1e1f22);
  border-radius: 50%;
  background: #f23f42;
  pointer-events: none;
}
.server-unread-dot[hidden] { display: none; }
.message-notification-stack {
  position: fixed;
  z-index: 10050;
  right: 18px;
  bottom: 18px;
  width: min(380px, calc(100vw - 32px));
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none;
}
.message-notification {
  position: relative;
  width: 100%;
  min-height: 72px;
  padding: 12px 38px 12px 12px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 8px;
  background: #111214;
  color: #f2f3f5;
  box-shadow: 0 8px 28px rgba(0,0,0,.38);
  display: flex;
  align-items: flex-start;
  gap: 11px;
  text-align: left;
  cursor: pointer;
  pointer-events: auto;
  opacity: 0;
  transform: translateY(12px) scale(.98);
  transition: opacity .16s ease, transform .16s ease, background-color .14s ease;
}
.message-notification.show { opacity: 1; transform: translateY(0) scale(1); }
.message-notification:hover { background: #1e1f22; }
.message-notification .avatar { width: 42px; height: 42px; flex: 0 0 42px; }
.message-notification-body { min-width: 0; display: grid; gap: 4px; }
.message-notification-body strong { color: #fff; font-size: 14px; line-height: 18px; }
.message-notification-body strong small { margin-left: 3px; color: #949ba4; font-weight: 500; }
.message-notification-body > span { color: #dbdee1; font-size: 14px; line-height: 19px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.message-notification-close { position: absolute; top: 8px; right: 10px; color: #b5bac1; font-size: 20px; line-height: 20px; }
body.light-mode .channel.has-unread { color: #060607; }
body.light-mode .server-unread-dot { border-color: #e3e5e8; }
body.light-mode .message-notification { background: #fff; color: #060607; border-color: #d4d7dc; box-shadow: 0 8px 26px rgba(0,0,0,.18); }
body.light-mode .message-notification:hover { background: #f2f3f5; }
body.light-mode .message-notification-body strong { color: #060607; }
body.light-mode .message-notification-body strong small { color: #5c5e66; }
body.light-mode .message-notification-body > span { color: #313338; }
body.light-mode .message-notification-close { color: #4e5058; }
/* Mobile rule moved to assets/css/mobile.css. */


/* v1.65 — numeric unread badges and theme-safe message notifications */
.server-unread-dot { display: none !important; }
.server-unread-badge {
  position: absolute;
  top: -5px;
  right: -7px;
  z-index: 3;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border: 3px solid var(--rail-bg, #1e1f22);
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f23f42;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  font-size: 10px;
  font-weight: 800;
  line-height: 14px;
  pointer-events: none;
  box-sizing: border-box;
}
.server-unread-badge[hidden] { display: none !important; }
body.light-mode .server-unread-badge,
:root[data-theme="light"] .server-unread-badge {
  border-color: #e3e5e8 !important;
  background: #da373c !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

/* Keep message notifications fully theme-aware despite global button rules. */
.message-notification {
  background: #111214 !important;
  color: #f2f3f5 !important;
  border-color: rgba(255,255,255,.08) !important;
  -webkit-text-fill-color: initial !important;
}
.message-notification:hover,
.message-notification:focus-visible {
  background: #1e1f22 !important;
  color: #f2f3f5 !important;
}
.message-notification-body strong { color: #fff !important; -webkit-text-fill-color: #fff !important; }
.message-notification-body strong small { color: #949ba4 !important; -webkit-text-fill-color: #949ba4 !important; }
.message-notification-body > span { color: #dbdee1 !important; -webkit-text-fill-color: #dbdee1 !important; }
.message-notification-close { color: #b5bac1 !important; -webkit-text-fill-color: #b5bac1 !important; }

body.light-mode .message-notification,
:root[data-theme="light"] .message-notification {
  background: #ffffff !important;
  color: #060607 !important;
  border-color: #d4d7dc !important;
  box-shadow: 0 8px 26px rgba(0,0,0,.18) !important;
}
body.light-mode .message-notification:hover,
body.light-mode .message-notification:focus-visible,
:root[data-theme="light"] .message-notification:hover,
:root[data-theme="light"] .message-notification:focus-visible {
  background: #f2f3f5 !important;
  color: #060607 !important;
}
body.light-mode .message-notification-body strong,
:root[data-theme="light"] .message-notification-body strong {
  color: #060607 !important;
  -webkit-text-fill-color: #060607 !important;
}
body.light-mode .message-notification-body strong small,
:root[data-theme="light"] .message-notification-body strong small {
  color: #5c5e66 !important;
  -webkit-text-fill-color: #5c5e66 !important;
}
body.light-mode .message-notification-body > span,
:root[data-theme="light"] .message-notification-body > span {
  color: #313338 !important;
  -webkit-text-fill-color: #313338 !important;
}
body.light-mode .message-notification-close,
:root[data-theme="light"] .message-notification-close {
  color: #4e5058 !important;
  -webkit-text-fill-color: #4e5058 !important;
}

/* v1.66 — unread counts live inside sidebar channel tabs */
.sidebar-channel-item > .channel {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 7px;
  min-width: 0;
}
.sidebar-channel-item > .channel .channel-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sidebar-channel-item > .channel .unread-badge {
  position: static;
  justify-self: end;
  margin-left: 6px;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 10px;
  line-height: 20px;
  flex: none;
  z-index: 1;
}

/* v1.67 — exact unread badge placement in sidebar channel tabs */
.sidebar-channel-item[data-sidebar-channel] > button.channel {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
}
.sidebar-channel-item[data-sidebar-channel] > button.channel > .unread-badge[data-unread-channel] {
  display: inline-flex;
  justify-self: end;
  align-self: center;
}
.sidebar-channel-item[data-sidebar-channel] > button.channel > .unread-badge[data-unread-channel][hidden] {
  display: none !important;
}

/* v1.79 — unified application-style desktop dimensions
   This block intentionally applies only above the mobile/tablet breakpoints. */
@media (min-width: 1001px) {
  :root {
    --app-server-rail-width: 72px;
    --app-channel-sidebar-width: 240px;
    --app-member-list-width: 240px;
    --app-header-height: 48px;
    --app-user-panel-height: 52px;
    --app-server-icon-size: 48px;
    --app-avatar-size: 32px;
    --app-message-avatar-size: 40px;
    --app-channel-row-height: 34px;
    --app-member-row-height: 42px;
    --app-control-height: 32px;
    --app-form-height: 40px;
  }

  .shell,
  .shell.members-hidden {
    grid-template-columns:
      var(--app-server-rail-width)
      var(--app-channel-sidebar-width)
      minmax(360px, 1fr)
      var(--app-member-list-width) !important;
    grid-template-rows: var(--app-header-height) minmax(0, 1fr) !important;
  }
  .shell.members-hidden {
    grid-template-columns:
      var(--app-server-rail-width)
      var(--app-channel-sidebar-width)
      minmax(360px, 1fr)
      0 !important;
  }

  .rail {
    width: var(--app-server-rail-width);
    padding: 12px 8px;
  }
  .server-btn {
    width: var(--app-server-icon-size);
    height: var(--app-server-icon-size);
    min-width: var(--app-server-icon-size);
    min-height: var(--app-server-icon-size);
    margin-bottom: 8px;
  }

  .sidebar {
    width: var(--app-channel-sidebar-width);
    min-width: var(--app-channel-sidebar-width);
  }
  .sidebar-title,
  .header {
    height: var(--app-header-height);
    min-height: var(--app-header-height);
  }
  .sidebar-title { padding: 0 16px; }
  .sidebar-scroll { padding: 8px; }
  .category {
    min-height: 24px;
    margin: 12px 8px 2px;
    display: flex;
    align-items: center;
    font-size: 11px;
    line-height: 16px;
  }
  .sidebar-channel-item > .channel,
  .channel {
    min-height: var(--app-channel-row-height);
    height: var(--app-channel-row-height);
    padding: 6px 8px;
    border-radius: 4px;
    line-height: 20px;
  }
  .channel .hash { font-size: 20px; line-height: 20px; }
  .voice-users { margin-left: 24px; }
  .mini-user {
    min-height: 32px;
    padding: 4px 8px;
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .userbar {
    min-height: var(--app-user-panel-height);
    height: var(--app-user-panel-height);
    padding: 6px 8px;
    gap: 8px;
  }
  .userbar .avatar,
  .user-avatar-button .avatar {
    width: var(--app-avatar-size);
    height: var(--app-avatar-size);
  }
  .userbar .icon-btn {
    width: var(--app-control-height);
    height: var(--app-control-height);
    min-width: var(--app-control-height);
    min-height: var(--app-control-height);
    padding: 6px;
  }

  .header { padding: 0 16px; }
  .header h2 { font-size: 16px; line-height: 20px; }
  .header-actions { align-items: center; gap: 4px; }
  .header-actions .icon-btn,
  .header-actions button:not(.primary):not(.secondary):not(.danger-button) {
    width: var(--app-control-height);
    height: var(--app-control-height);
    min-width: var(--app-control-height);
    min-height: var(--app-control-height);
  }
  .search { height: 24px; padding: 2px 8px; font-size: 13px; }

  .members {
    width: var(--app-member-list-width);
    min-width: var(--app-member-list-width);
    padding: 12px 8px;
  }
  .member {
    min-height: var(--app-member-row-height);
    padding: 5px 8px;
    gap: 10px;
  }
  .member .avatar {
    width: var(--app-avatar-size);
    height: var(--app-avatar-size);
  }

  .messages { padding: 16px 0 8px; }
  .message {
    grid-template-columns: 56px minmax(0, 1fr);
    min-height: 44px;
    padding: 2px 16px;
  }
  .message .avatar {
    width: var(--app-message-avatar-size);
    height: var(--app-message-avatar-size);
    margin-left: 0;
    margin-top: 2px;
  }
  .content { font-size: 15px; line-height: 1.375; }
  .msg-head { line-height: 20px; }
  .msg-head strong { font-size: 15px; }

  .composer-wrap { padding: 0 16px 18px; }
  .composer { min-height: 44px; padding: 8px 10px; border-radius: 8px; }
  .composer textarea {
    min-height: 24px;
    line-height: 24px;
    font-size: 15px;
  }
  .typing { height: 20px; min-height: 20px; padding: 2px 4px; }

  .field:not(textarea),
  input.field,
  select.field,
  .primary,
  .secondary,
  .danger-button {
    min-height: var(--app-form-height);
    height: var(--app-form-height);
  }

  .context-menu,
  .presence-popover,
  .server-menu {
    min-width: 188px;
    max-width: 320px;
    border-radius: 8px;
    padding: 6px;
  }
  .context-menu button,
  .presence-popover > button,
  .server-menu button {
    min-height: 32px;
    padding: 6px 8px;
    border-radius: 4px;
  }

  .voice-stage {
    left: calc(var(--app-server-rail-width) + var(--app-channel-sidebar-width));
    right: var(--app-member-list-width);
    top: var(--app-header-height);
  }
  .shell.members-hidden .voice-stage { right: 0; }

  .modal-backdrop { padding: 24px; }
  .modal.modal-medium { width: min(600px, calc(100vw - 48px)); }
  .modal.modal-wide { width: min(960px, calc(100vw - 48px)); }
  .modal.modal-full,
  .modal.settings-modal {
    width: min(1180px, calc(100vw - 48px));
    height: min(900px, calc(100vh - 48px));
    max-height: calc(100vh - 48px);
  }
  .settings-nav { width: 218px; min-width: 218px; }
  .settings-content { padding: 40px 40px 48px; }
}

/* Keep the medium desktop/tablet proportions predictable without changing mobile. */
@media (min-width: 701px) and (max-width: 1000px) {
  .shell {
    grid-template-columns: 72px 240px minmax(0, 1fr) !important;
    grid-template-rows: 48px minmax(0, 1fr) !important;
  }
  .rail { width: 72px; }
  .sidebar { width: 240px; min-width: 240px; }
  .voice-stage { left: 312px; top: 48px; right: 0; }
}

/* v1.80 role settings layout */
.role-settings-shell{
  display:grid!important;
  grid-template-columns:240px minmax(0,1fr)!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  overflow:hidden!important;
}
.role-list-panel{
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  height:100%!important;
  padding:16px 10px!important;
  overflow:hidden!important;
  background:var(--panel)!important;
  border-right:1px solid var(--border)!important;
}
.role-list-title{flex:none;padding:0 8px 12px!important}
.role-list-title .add-role-quick{width:28px!important;height:28px!important;min-height:28px!important;border-radius:50%!important}
.role-list-scroll{min-height:0;overflow:auto;padding-right:2px}
.role-row{min-height:36px!important;padding:7px 8px!important}
.role-editor{
  min-width:0!important;
  height:100%!important;
  padding:32px clamp(24px,4vw,48px)!important;
  overflow:auto!important;
  background:var(--bg)!important;
}
.role-editor-head{margin-bottom:24px;padding-right:44px}
.role-editor-head h2{margin:0 0 6px!important;font-size:22px}
.role-editor-head p{margin:0;color:var(--muted)}
.role-form-grid{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:16px;align-items:end;margin-bottom:26px}
.role-form-grid>div{min-width:0}
.role-form-grid label{margin-top:0}
.role-form-grid .role-color{width:100%;height:40px}
.role-editor .permission-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important}
.role-editor-actions{position:sticky;bottom:-32px;margin:24px -48px -32px!important;padding:14px 48px!important;background:color-mix(in srgb,var(--bg) 94%,transparent);border-top:1px solid var(--border);z-index:2}
.role-create-dialog{width:min(480px,calc(100vw - 48px));display:flex;flex-direction:column;gap:10px}
.role-create-dialog .settings-page-head{margin-bottom:8px}
.role-create-dialog .settings-page-head p{margin:6px 0 0;color:var(--muted)}
.role-color-row{display:flex;align-items:center;gap:12px}
.role-color-row .role-color{width:64px;height:40px}
.role-color-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted)}
.role-create-dialog .modal-footer{margin-top:18px}
:root[data-theme="light"] .role-list-panel{background:#f2f3f5!important;border-color:#d9dce1!important}
:root[data-theme="light"] .role-editor{background:#fff!important}
:root[data-theme="light"] .role-editor-actions{background:rgba(255,255,255,.96)!important;border-color:#d9dce1!important}
@media(max-width:900px){
  .role-settings-shell{grid-template-columns:190px minmax(0,1fr)!important}
  .role-editor{padding:24px 20px!important}
  .role-editor-actions{bottom:-24px;margin:20px -20px -24px!important;padding:12px 20px!important}
  .role-editor .permission-grid{grid-template-columns:1fr}
}
/* Mobile rule moved to assets/css/mobile.css. */

/* v1.81 — consistent application-style spacing between adjacent controls */
:root{
  --control-gap-compact:6px;
  --control-gap:8px;
  --control-gap-relaxed:12px;
}

/* True action groups: never allow adjacent controls to touch. */
.inline,
.actions,
.messagebox-actions,
.modal-actions,
.dialog-actions,
.role-editor-actions,
.voice-settings-actions,
.invite-row>div:last-child,
.danger-row,
.account-detail-actions,
.settings-row-actions,
.channel-actions,
.category-actions,
.group-actions,
.friend .actions,
.header-actions,
.image-lightbox-actions,
.callbar{
  column-gap:var(--control-gap)!important;
  row-gap:var(--control-gap)!important;
}

/* Keep compact icon toolbars compact, but still visibly separated. */
.header-actions,
.msg-actions,
.userbar-controls,
.composer-actions{
  column-gap:var(--control-gap-compact)!important;
}

/* Modal and form footers use a slightly more generous application-like gap. */
.messagebox-actions,
.modal-actions,
.dialog-actions,
.role-editor-actions,
.danger-row{
  column-gap:var(--control-gap-relaxed)!important;
}

/* Remove legacy margins that can create uneven spacing inside flex action rows. */
.inline>button,
.actions>button,
.messagebox-actions>button,
.modal-actions>button,
.dialog-actions>button,
.role-editor-actions>button,
.voice-settings-actions>button,
.invite-row>div:last-child>button,
.danger-row>button,
.account-detail-actions>button,
.settings-row-actions>button,
.channel-actions>button,
.category-actions>button,
.group-actions>button,
.friend .actions>button{
  margin-inline:0!important;
}

/* Wrapping rows retain a minimum vertical separation on narrow containers. */
.inline,
.actions,
.messagebox-actions,
.modal-actions,
.dialog-actions,
.role-editor-actions,
.voice-settings-actions,
.danger-row,
.account-detail-actions,
.settings-row-actions,
.channel-actions,
.category-actions,
.group-actions{
  flex-wrap:wrap;
}

/* Paired inputs/buttons must keep their gap and vertical alignment. */
.row,
.inline-form,
.input-action-row,
.settings-inline-row{
  column-gap:var(--control-gap)!important;
  row-gap:var(--control-gap)!important;
  align-items:center;
}

/* Mobile rule moved to assets/css/mobile.css. */

/* v1.82 — platform-specific application layout refresh (desktop, tablet, mobile) */
:root{
  --app-rail:72px;
  --app-sidebar:240px;
  --app-members:240px;
  --app-header:48px;
  --app-radius:8px;
  --app-mobile-bar:64px;
}
.mobile-youbar{display:none}

/* Desktop: refreshed application shell with stable rails, resizable channel list,
   rounded content surfaces and reduced visual noise. */
@media (min-width:1001px){
  .shell{
    grid-template-columns:var(--app-rail) clamp(220px,18vw,320px) minmax(360px,1fr) var(--app-members)!important;
    grid-template-rows:var(--app-header) minmax(0,1fr)!important;
    gap:0;
    background:var(--rail);
  }
  .rail{padding:12px 8px 10px}
  .sidebar{width:auto!important;min-width:220px!important;border-radius:var(--app-radius) 0 0 var(--app-radius);overflow:hidden}
  .header{border-radius:0 var(--app-radius) 0 0;box-shadow:0 1px 0 rgba(0,0,0,.18)}
  .main{border-radius:0 0 0 var(--app-radius);overflow:hidden}
  .members{width:var(--app-members)!important;min-width:var(--app-members)!important;border-radius:0 0 var(--app-radius) 0}
  .shell.members-hidden{grid-template-columns:var(--app-rail) clamp(220px,18vw,320px) minmax(360px,1fr) 0!important}
  .shell.members-hidden .header{border-radius:0 var(--app-radius) 0 0}
  .shell.members-hidden .main{border-radius:0 0 var(--app-radius) var(--app-radius)}
  .sidebar{resize:horizontal;max-width:320px;overflow:auto}
  .sidebar-scroll{overflow:auto}
  .sidebar-title{position:sticky;top:0;z-index:3}
  .userbar{position:sticky;bottom:0;z-index:3}
  .message{padding-left:16px;padding-right:16px}
  .message:hover{background:color-mix(in srgb,var(--bg) 88%,white 4%)}
  .composer-wrap{padding:0 16px 16px}
  .composer{border-radius:8px;min-height:44px}
  .modal:has(.app-settings){width:min(1180px,calc(100vw - 64px));height:min(900px,calc(100vh - 64px))}
}

/* Tablet: keep application's desktop information hierarchy, but collapse members
   and reduce rail/sidebar widths so chat remains the primary surface. */
@media (min-width:701px) and (max-width:1000px){
  :root{--app-rail:64px;--app-sidebar:224px}
  .shell,.shell.members-hidden{
    grid-template-columns:var(--app-rail) var(--app-sidebar) minmax(0,1fr)!important;
    grid-template-rows:48px minmax(0,1fr)!important;
    grid-template-areas:"rail sidebar header" "rail sidebar main"!important;
  }
  .rail{width:var(--app-rail)!important;padding:10px 8px}
  .server-btn{width:44px;height:44px;min-width:44px;min-height:44px}
  .sidebar{width:var(--app-sidebar)!important;min-width:var(--app-sidebar)!important}
  .members{display:none!important}
  .member-toggle{display:none!important}
  .header{padding:0 12px}
  .search{width:min(160px,20vw)}
  .message{grid-template-columns:52px minmax(0,1fr);padding:3px 12px}
  .message .avatar{width:38px;height:38px;margin-left:2px}
  .composer-wrap{padding:0 12px 12px}
  .voice-stage{left:calc(var(--app-rail) + var(--app-sidebar))!important;right:0!important;top:48px!important}
  .app-settings,.user-settings-shell{grid-template-columns:190px minmax(0,1fr)!important}
  .settings-nav{padding-left:14px!important;padding-right:10px!important}
  .settings-content{padding:32px 24px 40px!important}
}

/* Mobile: native mobile navigation with a persistent You Bar. Sidebars remain
   drawers, while the chat header and composer stay reachable with one hand. */
/* Mobile rule moved to assets/css/mobile.css. */

@media (max-width:390px){
  .mobile-youbar{grid-template-columns:48px 48px minmax(0,1fr) 48px;padding-left:4px;padding-right:4px}
  .mobile-youbar-item span{display:none}
  .mobile-youbar-profile{gap:7px;padding-left:6px;padding-right:6px}
  .mobile-youbar-profile .avatar{width:34px;height:34px}
  .mobile-youbar-identity small{display:none}
  .sidebar{left:64px!important;width:calc(100vw - 64px)!important}
  .rail{width:64px!important}
}

/* v1.84 — authoritative visual-integrity layer.
   This section intentionally wins over legacy version patches above. */
:root{
  --layout-rail:72px;
  --layout-sidebar:240px;
  --layout-members:240px;
  --layout-header:48px;
  --layout-userbar:52px;
  --layout-mobile-nav:64px;
  --surface-radius:8px;
  --menu-radius:8px;
  --control-height:40px;
}

/* Global containment and predictable flex/grid behavior. */
.shell,.rail,.sidebar,.header,.main,.members,.messages,.friends,
.app-settings,.user-settings-shell,.settings-nav,.settings-content,
.modal,.context-menu,.presence-popover{min-width:0;min-height:0}
.rail,.sidebar-scroll,.messages,.friends,.members,.settings-nav,.settings-content{overscroll-behavior:contain}
.header,.sidebar-title,.userbar,.mobile-youbar{flex:none}
.header h2,.topic,.channel span,.member span,.friend>div,.user-meta,.msg-head{min-width:0}
.header h2,.topic,.channel span,.member span,.friend strong,.friend small,.user-meta strong,.user-meta small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Desktop shell. */
@media (min-width:1001px){
  .shell,.shell.members-hidden,.shell.members-unavailable{
    display:grid!important;
    grid-template-rows:var(--layout-header) minmax(0,1fr)!important;
    grid-template-areas:"rail sidebar header header" "rail sidebar main members"!important;
    grid-template-columns:var(--layout-rail) var(--layout-sidebar) minmax(360px,1fr) var(--layout-members)!important;
    height:100%;padding:0;gap:0;background:var(--rail);overflow:hidden;
  }
  .shell.members-hidden,.shell.members-unavailable{
    grid-template-areas:"rail sidebar header" "rail sidebar main"!important;
    grid-template-columns:var(--layout-rail) var(--layout-sidebar) minmax(360px,1fr)!important;
  }
  .rail{grid-area:rail;width:var(--layout-rail)!important;padding:12px 8px 10px;overflow-x:hidden;overflow-y:auto}
  .sidebar{grid-area:sidebar;width:var(--layout-sidebar)!important;min-width:var(--layout-sidebar)!important;max-width:var(--layout-sidebar)!important;resize:none!important;border-radius:var(--surface-radius) 0 0 var(--surface-radius);overflow:hidden}
  .header{grid-area:header;height:var(--layout-header);padding:0 12px;border-radius:0 var(--surface-radius) 0 0;overflow:hidden}
  .main{grid-area:main;border-radius:0 0 0 var(--surface-radius);overflow:hidden}
  .members{grid-area:members;display:block;width:var(--layout-members)!important;min-width:var(--layout-members)!important;max-width:var(--layout-members)!important;padding:12px 8px;border-radius:0 0 var(--surface-radius) 0;overflow-y:auto;overflow-x:hidden}
  .shell.members-hidden>.members,.shell.members-unavailable>.members{display:none!important}
  .shell.members-hidden .main,.shell.members-unavailable .main{border-radius:0 0 var(--surface-radius) 0}
  .shell.members-hidden .header,.shell.members-unavailable .header{border-radius:0 var(--surface-radius) 0 0}
  .mobile-menu,.mobile-youbar,.mobile-backdrop{display:none!important}
  .voice-stage{left:calc(var(--layout-rail) + var(--layout-sidebar))!important;right:var(--layout-members)!important;top:var(--layout-header)!important;bottom:0!important}
  .shell.members-hidden~.voice-stage,.shell.members-unavailable~.voice-stage{right:0!important}
}

/* Shared desktop/tablet content sizing. */
.sidebar-title{height:var(--layout-header);min-height:var(--layout-header);padding:0 12px}
.sidebar-scroll{padding:8px;overflow-y:auto;overflow-x:hidden;flex:1}
.userbar{height:var(--layout-userbar);min-height:var(--layout-userbar);padding:6px 8px}
.category{margin:16px 8px 4px;line-height:16px}
.channel{min-height:34px;padding:6px 8px;border-radius:4px}
.member{min-height:42px;padding:5px 8px;border-radius:4px}
.header{gap:8px}
.header-actions{align-items:center;flex:none}
.header-actions .icon-btn,.member-toggle,.mobile-menu{width:32px;height:32px;min-width:32px;min-height:32px;display:grid;place-items:center;padding:6px}
.search{height:24px;width:180px;padding:0 8px}
.messages{padding:12px 0 4px;scrollbar-gutter:stable}
.message{grid-template-columns:56px minmax(0,1fr);padding:3px 16px;min-height:44px}
.message .avatar{width:40px;height:40px;margin:2px 0 0 8px}
.msg-actions{z-index:5;overflow:visible;padding:2px;gap:2px}
.msg-actions button{width:32px;height:32px;display:grid;place-items:center;padding:6px;border-radius:4px}
.composer-wrap{padding:0 16px 16px}
.composer{min-height:44px;padding:5px 8px;border-radius:8px;align-items:flex-end}
.composer textarea{min-height:34px;line-height:22px;padding:6px 2px}
.friends{padding:16px 20px 24px}
.friend{min-height:62px;padding:10px 8px}

/* Settings and managers: one scroll owner per axis, no negative offsets. */
.modal-backdrop{padding:24px;overflow:hidden}
.modal{position:relative;width:min(500px,calc(100vw - 48px));max-width:100%;max-height:calc(100dvh - 48px);padding:24px;border-radius:12px;overflow:auto}
.modal.modal-medium{width:min(620px,calc(100vw - 48px))}
.modal.modal-wide{width:min(960px,calc(100vw - 48px))}
.modal.modal-full{width:min(1180px,calc(100vw - 48px));height:min(860px,calc(100dvh - 48px));padding:0;overflow:hidden}
.modal>.close{position:absolute;top:14px;right:14px;float:none;z-index:8;width:36px;height:36px;display:grid;place-items:center}
.app-settings,.user-settings-shell{display:grid!important;grid-template-columns:220px minmax(0,1fr)!important;width:100%;height:100%;overflow:hidden}
.settings-nav{width:auto!important;padding:52px 12px 24px;overflow-y:auto;overflow-x:hidden}
.settings-nav button{width:100%;min-height:34px;padding:6px 10px;text-align:left}
.settings-content{width:auto!important;max-width:none!important;padding:48px clamp(24px,4vw,48px);overflow-y:auto;overflow-x:hidden}
.settings-content>*{max-width:760px}
.settings-content>.role-manager,.settings-content>.role-manager-layout,.settings-content>.manager-window{max-width:none}
.role-manager,.role-manager-layout{width:100%;min-width:0;overflow:hidden}
.role-list,.role-editor{min-width:0;overflow:auto}
.row,.inline,.actions,.modal-footer,.messagebox-actions{min-width:0}
.row>*{min-width:0}

/* Popovers, context menus and tooltips. */
.context-menu,.presence-popover{
  position:fixed;z-index:10020;width:220px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);
  padding:6px;border-radius:var(--menu-radius);overflow-y:auto;overflow-x:hidden;box-shadow:0 8px 24px rgba(0,0,0,.45)
}
.presence-popover{position:absolute;width:280px;left:6px;bottom:calc(100% + 8px)}
.context-menu button,.presence-popover>button{width:100%;min-height:32px;padding:6px 8px;border-radius:4px;text-align:left}
.context-menu hr,.presence-separator{margin:4px 0}
[role="tooltip"],.tooltip{max-width:min(320px,calc(100vw - 16px));overflow-wrap:anywhere}

/* Forms and action areas. */
.field:not(textarea),select.field,input.field,.primary,.secondary,.danger-button{min-height:var(--control-height)}
.modal-footer,.messagebox-actions,.dialog-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap}
.context-menu button,.icon-btn,.primary,.secondary,.danger-button{flex:none}

/* Tablet: preserve the left hierarchy, hide the passive member pane. */
@media (min-width:701px) and (max-width:1000px){
  :root{--layout-rail:64px;--layout-sidebar:224px}
  .shell,.shell.members-hidden,.shell.members-unavailable{
    display:grid!important;grid-template-columns:var(--layout-rail) var(--layout-sidebar) minmax(0,1fr)!important;
    grid-template-rows:var(--layout-header) minmax(0,1fr)!important;
    grid-template-areas:"rail sidebar header" "rail sidebar main"!important;height:100%;overflow:hidden
  }
  .rail{grid-area:rail;width:var(--layout-rail)!important;padding:10px 8px;overflow-y:auto}
  .server-btn{width:44px;height:44px;min-width:44px;min-height:44px}
  .sidebar{grid-area:sidebar;width:var(--layout-sidebar)!important;min-width:var(--layout-sidebar)!important;max-width:var(--layout-sidebar)!important;overflow:hidden}
  .header{grid-area:header}
  .main{grid-area:main;overflow:hidden}
  .members,.member-toggle,.mobile-youbar{display:none!important}
  .voice-stage{left:calc(var(--layout-rail) + var(--layout-sidebar))!important;right:0!important;top:var(--layout-header)!important;bottom:0!important}
  .search{width:140px}
  .modal.modal-full{width:calc(100vw - 32px);height:calc(100dvh - 32px)}
  .app-settings,.user-settings-shell{grid-template-columns:190px minmax(0,1fr)!important}
  .settings-content{padding:40px 24px}
}

/* Mobile: only chat is in-flow; navigation/member surfaces are drawers. */
/* Mobile rule moved to assets/css/mobile.css. */

@media (max-width:390px){
  .rail{width:60px!important}
  .sidebar{left:60px!important;width:calc(100vw - 60px)!important;transform:translateX(calc(-100% - 60px))}
  .mobile-youbar{grid-template-columns:48px 48px minmax(0,1fr) 48px}
  .message{grid-template-columns:40px minmax(0,1fr);padding-inline:6px}
  .message .avatar{width:34px;height:34px}
}

/* v1.85 — presence popover is a document-level overlay, never clipped by chat/sidebar surfaces. */
body > .presence-popover{
  position:fixed!important;
  z-index:30000!important;
  margin:0!important;
  max-width:calc(100vw - 16px)!important;
  max-height:calc(100dvh - 16px)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  isolation:isolate;
}
@media (min-width:701px){
  body > .presence-popover{right:auto!important;bottom:auto!important;width:280px}
}
/* Mobile rule moved to assets/css/mobile.css. */

/* v1.86 — current application display system: four themes, three densities, resizable channel list. */
:root{--user-sidebar-width:240px;--density-message-y:4px;--density-channel-h:34px;--density-member-h:42px;--density-control-h:40px}
:root[data-theme="light"]{--bg:#fff;--panel:#f2f3f5;--rail:#e3e5e8;--top:#f2f3f5;--muted:#5c5e66;--text:#313338;--strong:#060607;--hover:#dfe1e5;--input:#e3e5e8}
:root[data-theme="ash"]{--bg:#2e3035;--panel:#292b30;--rail:#24262b;--top:#292b30;--muted:#a6aab2;--text:#e0e2e6;--strong:#fff;--hover:#35383e;--input:#34373d}
:root[data-theme="dark"]{--bg:#313338;--panel:#2b2d31;--rail:#1e1f22;--top:#2b2d31;--muted:#949ba4;--text:#dbdee1;--strong:#f2f3f5;--hover:#35373c;--input:#383a40}
:root[data-theme="onyx"]{--bg:#111214;--panel:#161719;--rail:#0c0d0e;--top:#161719;--muted:#9b9da3;--text:#dcdee1;--strong:#fff;--hover:#232529;--input:#202225}
:root[data-density="spacious"]{--density-message-y:8px;--density-channel-h:38px;--density-member-h:46px;--density-control-h:44px}
:root[data-density="compact"]{--density-message-y:1px;--density-channel-h:30px;--density-member-h:36px;--density-control-h:36px}
@media (min-width:1001px){
 .shell,.shell.members-hidden,.shell.members-unavailable{grid-template-columns:72px var(--user-sidebar-width) minmax(360px,1fr) 240px!important}
 .voice-stage{left:calc(72px + var(--user-sidebar-width))!important}
 .sidebar-resizer{display:block;position:fixed;z-index:150;left:calc(72px + var(--user-sidebar-width) - 3px);top:0;bottom:0;width:6px;cursor:col-resize;background:transparent}
 .sidebar-resizer:hover,.resizing-sidebar .sidebar-resizer{background:color-mix(in srgb,var(--accent) 65%,transparent)}
 .resizing-sidebar{cursor:col-resize;user-select:none}
}
@media (max-width:1000px){.sidebar-resizer{display:none}}
.channel{min-height:var(--density-channel-h)!important}.member{min-height:var(--density-member-h)!important}.message{padding-top:var(--density-message-y)!important;padding-bottom:var(--density-message-y)!important}.primary,.secondary,.field,select.field{min-height:var(--density-control-h)}
.appearance-section{margin:0 0 26px}.appearance-section>h3{margin:0 0 12px;color:var(--strong)}.four-themes{grid-template-columns:repeat(4,minmax(0,1fr))!important}.theme-preview{height:76px}.ash-preview{background:linear-gradient(135deg,#24262b 0 35%,#2e3035 35%)}.onyx-preview{background:linear-gradient(135deg,#0c0d0e 0 35%,#111214 35%)}
.density-choice{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.density-card{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;border:2px solid transparent;background:var(--input);border-radius:8px;padding:14px;cursor:pointer}.density-card small{color:var(--muted);line-height:1.35}.density-card.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--input))}.sidebar-width-setting small{display:block;margin-top:8px;color:var(--muted);text-transform:none;font-weight:400}.sidebar-width-setting label{display:flex;justify-content:space-between}
/* Mobile rule moved to assets/css/mobile.css. */

/* v1.87 — server menu overlay contract */
.server-menu-popover,
.server-menu-popover[popover] {
  position: fixed !important;
  z-index: 30050 !important;
  width: 220px;
  min-width: 180px;
  max-width: calc(100vw - 16px);
  max-height: calc(100dvh - 16px);
  margin: 0 !important;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  box-sizing: border-box;
  visibility: hidden;
}
.server-menu-popover[popover]::backdrop { background: transparent; }
.server-menu-popover:popover-open { display: block; }
@supports not (height: 100dvh) {
  .server-menu-popover,
  .server-menu-popover[popover] { max-height: calc(100vh - 16px); }
}
/* Mobile rule moved to assets/css/mobile.css. */

/* v1.88 permission-aware server menu dialogs */
.radio-row{display:flex;align-items:center;gap:12px;min-height:40px;padding:8px 10px;border-radius:4px;cursor:pointer;color:var(--text)}
.radio-row:hover{background:var(--hover)}
.radio-row input{flex:0 0 auto}
.server-menu-popover .danger-text{color:var(--danger)}
.server-menu-popover .danger-text:hover{background:color-mix(in srgb,var(--danger) 16%,transparent);color:var(--danger)}
.quick-invite-result{margin-top:16px}
.quick-invite-result[hidden]{display:none}

/* v1.91 voice-presence rows */
.voice-users .voice-presence-user{width:100%;display:flex;align-items:center;gap:7px;border:0;background:transparent;border-radius:4px;text-align:left;cursor:default;color:var(--muted)}
.voice-users .voice-presence-user .avatar{width:24px;height:24px;font-size:10px}
.voice-users .voice-presence-user .status-dot{width:9px;height:9px;border-width:2px}
.voice-users .voice-presence-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.voice-users .voice-presence-flags{display:flex;gap:2px;font-size:11px;white-space:nowrap}
.voice-users .voice-presence-user:hover{background:var(--hover);color:var(--strong)}


/* v1.92 mentions */
.mention-chip{display:inline-flex;align-items:center;border:0;border-radius:3px;padding:0 2px;background:color-mix(in srgb,var(--accent) 28%,transparent);color:color-mix(in srgb,var(--accent) 65%,white);font:inherit;font-weight:500;line-height:1.25;vertical-align:baseline;cursor:pointer}
.mention-chip:hover{background:var(--accent);color:#fff}.mention-chip.role{background:color-mix(in srgb,var(--mention-role,var(--accent)) 24%,transparent);color:color-mix(in srgb,var(--mention-role,var(--accent)) 72%,white)}.mention-chip.broadcast{cursor:default}.mention-chip.unresolved{opacity:.72;cursor:default}
.mention-chip.channel{gap:1px;min-height:1.25em;padding:0 3px 0 2px;background:color-mix(in srgb,var(--accent) 24%,transparent);color:color-mix(in srgb,var(--accent) 72%,var(--strong));font-weight:500;line-height:1.2;vertical-align:-.075em;white-space:nowrap;text-decoration:none;transition:background-color .08s ease,color .08s ease;touch-action:manipulation}
.mention-chip.channel .mention-channel-icon{display:inline-flex;align-items:center;justify-content:center;width:.95em;height:.95em;flex:0 0 .95em;opacity:.92}
.mention-chip.channel .mention-channel-icon .app-icon{width:100%;height:100%;stroke-width:2.25}
.mention-chip.channel .mention-channel-name{display:inline-block;line-height:inherit}
.mention-chip.channel:hover,.mention-chip.channel:active{background:var(--accent);color:#fff}
.mention-chip.channel:hover .mention-channel-icon,.mention-chip.channel:active .mention-channel-icon{opacity:1}
.mention-chip.channel:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 68%,var(--strong));outline-offset:1px}
.mention-chip.channel.unresolved{background:color-mix(in srgb,var(--muted) 14%,transparent);color:var(--muted);opacity:1;cursor:default}
.mention-chip.channel.unresolved:hover{background:color-mix(in srgb,var(--muted) 14%,transparent);color:var(--muted)}
.message.mentioned-message{background:color-mix(in srgb,#f0b232 9%,var(--main));border-left:2px solid #f0b232;padding-left:14px!important}.message.mentioned-message:hover{background:color-mix(in srgb,#f0b232 13%,var(--main))}
.composer-wrap{position:relative}.mention-autocomplete{position:absolute;left:12px;right:12px;bottom:calc(100% - 2px);z-index:1200;max-height:min(360px,48vh);overflow:auto;padding:8px;background:var(--popover,var(--sidebar));border:1px solid color-mix(in srgb,var(--muted) 25%,transparent);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.34)}
.mention-autocomplete-title{padding:6px 8px 8px;color:var(--muted);font-size:12px;text-transform:uppercase;font-weight:700}.mention-autocomplete button{width:100%;display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 8px;border:0;border-radius:4px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.mention-autocomplete button:hover,.mention-autocomplete button.active{background:var(--hover);color:var(--strong)}.mention-autocomplete .avatar{width:32px;height:32px;flex:0 0 32px}.mention-autocomplete button>span:last-child{display:flex;min-width:0;flex:1 1 auto;flex-direction:column}.mention-autocomplete small{color:var(--muted)}.mention-symbol{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:color-mix(in srgb,var(--mention-role,var(--accent)) 25%,var(--input));font-weight:800;color:var(--mention-role,var(--accent))}.mention-symbol.channel{border-radius:0;font-size:20px;color:var(--muted);background:transparent}
/* Mobile rule moved to assets/css/mobile.css. */

/* v1.93 search and runtime-contract fixes */
.search-dialog{min-width:0}.search-results{display:flex;flex-direction:column;gap:4px;max-height:min(62vh,560px);overflow:auto;margin-top:16px}.search-result{display:grid;grid-template-columns:auto 1fr auto;gap:4px 10px;width:100%;padding:10px 12px;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.search-result:hover,.search-result:focus-visible{background:var(--hover)}.search-result-channel{grid-column:1;color:var(--muted);font-size:12px}.search-result strong{grid-column:2}.search-result time{grid-column:3;color:var(--muted);font-size:11px}.search-result>span:nth-of-type(2){grid-column:1/-1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message.search-highlight{animation:app-search-highlight 2.2s ease-out}@keyframes app-search-highlight{0%,35%{background:rgba(250,166,26,.22)}100%{background:transparent}}/* Mobile rule moved to assets/css/mobile.css. */

/* v1.95 — application 2026 responsive shell, spacing and overlay hardening */
:root{
  --layout-rail:72px;
  --layout-sidebar:var(--user-sidebar-width,240px);
  --layout-members:240px;
  --layout-header:48px;
  --layout-userbar:56px;
  --layout-mobile-nav:68px;
  --control-gap:8px;
  --control-gap-compact:4px;
  --overlay-radius:8px;
  --overlay-shadow:0 12px 36px rgba(0,0,0,.42);
}

/* Stable pane geometry: no member surface in Home/DM navigation. */
@media (min-width:1001px){
  .shell{grid-template-columns:var(--layout-rail) var(--layout-sidebar) minmax(360px,1fr) var(--layout-members)!important;grid-template-rows:var(--layout-header) minmax(0,1fr)}
  .shell.members-hidden,.shell.members-unavailable{grid-template-columns:var(--layout-rail) var(--layout-sidebar) minmax(360px,1fr) 0!important}
  .shell.members-unavailable>.members,.shell.members-hidden>.members{display:none!important}
  .voice-stage{left:calc(var(--layout-rail) + var(--layout-sidebar))!important;right:var(--layout-members)!important}
  .shell.members-hidden .voice-stage,.shell.members-unavailable .voice-stage{right:0!important}
}

/* application uses compact, repeatable spacing rather than touching controls. */
.header-actions,.callbar,.voice-settings-actions,.settings-page-actions,.modal-actions,.row.actions{gap:var(--control-gap)!important}
.inline,.custom-status-row,.friend .actions,.message-toolbar,.account-profile-row{column-gap:var(--control-gap)!important}
.header-actions>.icon-btn+.icon-btn,.userbar>.icon-btn+.icon-btn,.modal-actions>button+button,.settings-page-actions>button+button{margin-left:0!important}
.icon-btn{min-width:32px;min-height:32px;display:inline-grid;place-items:center}
.header-actions .icon-btn,.userbar .icon-btn{flex:0 0 32px}

/* Header and pane boundaries stay readable at browser zoom and narrow widths. */
.header,.sidebar-title{min-height:var(--layout-header);height:var(--layout-header)}
.header{gap:var(--control-gap);min-width:0}
.head-title{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topic{min-width:0;flex:1}
.search{flex:0 1 180px;min-width:100px}
.sidebar,.main,.members,.sidebar-scroll,.messages{min-width:0;min-height:0}
.userbar{min-height:var(--layout-userbar);height:var(--layout-userbar)}

/* Menus are document overlays and never participate in pane stacking contexts. */
body>.context-menu,body>.server-menu-popover,body>.presence-popover{
  position:fixed!important;
  z-index:30050!important;
  border-radius:var(--overlay-radius)!important;
  box-shadow:var(--overlay-shadow)!important;
  contain:layout paint;
  overscroll-behavior:contain;
}
body>.presence-popover{z-index:30060!important}
body>.context-menu{z-index:30070!important}
.context-menu button,.server-menu-popover button,.presence-popover button{min-height:32px}
.context-separator,.presence-separator{margin:4px 0}

/* Tablet: keep chat primary and make navigation/member surfaces drawers. */
@media (min-width:701px) and (max-width:1000px){
  .shell{grid-template-columns:64px minmax(220px,var(--layout-sidebar)) minmax(0,1fr)!important;grid-template-areas:"rail sidebar header" "rail sidebar main"!important}
  .members{display:block!important;position:fixed!important;top:var(--layout-header);right:0;bottom:0;width:min(300px,42vw);transform:translateX(105%);transition:transform .18s ease;z-index:220;box-shadow:-12px 0 32px rgba(0,0,0,.35)}
  .members.mobile-open{transform:none}
  .member-toggle{display:inline-grid!important}
  .voice-stage{left:calc(64px + var(--layout-sidebar))!important;right:0!important}
}

/* Mobile follows application's touch-first model: chat is primary, panes slide over it. */
/* Mobile rule moved to assets/css/mobile.css. */

@media (prefers-reduced-motion:reduce){
  .sidebar,.members,.rail,.mobile-youbar,.server-btn{transition:none!important}
}


/* v1.96 — application June 2026 layout and You Bar */
:root{
  --app-radius-lg:16px;
  --app-app-inset:8px;
  --app-youbar-height:76px;
}
@media (min-width:1001px){
  body{background:var(--rail)}
  .shell{gap:0;background:var(--rail)}
  .rail{padding:12px 8px 8px;border-radius:0;background:var(--rail)}
  .sidebar{margin:var(--app-app-inset) 0 var(--app-app-inset) 0;border-radius:var(--app-radius-lg) 0 0 var(--app-radius-lg);overflow:hidden;background:var(--panel)}
  .header{margin:var(--app-app-inset) var(--app-app-inset) 0 0;border-radius:0 var(--app-radius-lg) 0 0;background:var(--top);box-shadow:none}
  .main{margin:0 var(--app-app-inset) var(--app-app-inset) 0;border-radius:0 0 var(--app-radius-lg) 0;overflow:hidden;background:var(--bg)}
  .members{margin:0 var(--app-app-inset) var(--app-app-inset) 0;background:var(--panel);border-radius:0 0 var(--app-radius-lg) 0}
  .shell:not(.members-hidden):not(.members-unavailable) .main{margin-right:0;border-radius:0}
  .shell:not(.members-hidden):not(.members-unavailable) .members{border-left:1px solid color-mix(in srgb,var(--muted) 13%,transparent)}
  .server-btn{border-radius:16px}
  .server-btn.active{border-radius:13px}
  .sidebar-title,.header{border-bottom:1px solid color-mix(in srgb,var(--muted) 13%,transparent)}
  .channel{border-radius:6px;margin-inline:8px;width:calc(100% - 16px)}
  .userbar{margin:6px;border-radius:12px;height:52px;min-height:52px;background:color-mix(in srgb,var(--input) 72%,transparent)}
  .messages{scrollbar-gutter:stable}
}
.header{padding-inline:12px}.head-title{font-size:16px}.header-actions{align-items:center}.search{height:28px;border-radius:8px}
.message{border-radius:4px}.message:hover{background:color-mix(in srgb,var(--hover) 62%,transparent)}
.composer{border-radius:12px}.composer-wrap{padding-bottom:16px}
.context-menu,.server-menu-popover,.presence-popover{padding:6px!important;border:1px solid color-mix(in srgb,var(--muted) 18%,transparent)}
.context-menu button,.server-menu-popover button,.presence-popover button{border-radius:4px!important}

@media (min-width:701px) and (max-width:1000px){
  .sidebar{border-radius:0 16px 16px 0;box-shadow:8px 0 28px rgba(0,0,0,.28)}
  .header{border-radius:16px 16px 0 0;margin:8px 8px 0}
  .main{margin:0 8px 8px;border-radius:0 0 16px 16px;overflow:hidden}
}

/* Mobile rule moved to assets/css/mobile.css. */
@media (max-width:390px){
  .mobile-youbar{grid-template-columns:48px minmax(0,1fr) 48px 48px!important}
  .mobile-youbar-item{width:48px;min-width:48px}.mobile-youbar-profile{padding-right:8px!important}.mobile-youbar-identity small{display:none}
}

/* v1.98 — resize isolation without modifying modal or overlay behavior */
@media (min-width:1001px){
  .sidebar-resizer{
    z-index:12!important;
    touch-action:none;
    user-select:none;
    outline:none;
  }
  .sidebar-resizer::before{
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    left:2px;
    width:2px;
    border-radius:2px;
    background:transparent;
    transition:background-color .12s ease,width .12s ease,left .12s ease;
  }
  .sidebar-resizer:hover::before,
  .sidebar-resizer:focus-visible::before,
  .resizing-sidebar .sidebar-resizer::before{
    left:1px;
    width:4px;
    background:color-mix(in srgb,var(--accent) 78%,transparent);
  }
  .sidebar-resizer:hover,.resizing-sidebar .sidebar-resizer{background:transparent!important}
}
body.resizing-sidebar{cursor:col-resize!important;user-select:none}
body.resizing-sidebar iframe{pointer-events:none!important}

/* v2.00 — application-style message composer, inline editing and confirmation dialogs. */
.composer-wrap{
  padding:0 16px 20px;
  background:linear-gradient(to bottom,transparent,var(--bg) 14px);
}
.composer{
  position:relative;
  display:flex;
  align-items:flex-end;
  gap:4px;
  min-height:48px;
  padding:6px 8px;
  border:1px solid transparent;
  border-radius:12px;
  background:var(--input,#383a40);
  box-shadow:none;
  transition:border-color .12s ease,background .12s ease;
}
.composer:focus-within{border-color:color-mix(in srgb,var(--brand) 45%,transparent)}
.composer textarea{
  min-height:34px;
  max-height:160px;
  padding:6px 4px;
  line-height:22px;
  resize:none;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.composer .icon-btn{
  width:36px;
  min-width:36px;
  height:36px;
  min-height:36px;
  padding:7px;
  border-radius:50%;
  color:var(--muted);
}
.composer .icon-btn:hover{color:var(--strong);background:var(--hover)}
.composer .send{color:var(--brand)}
.composer .send:disabled{opacity:.4}
.replying{
  display:none;
  min-height:38px;
  margin:0;
  padding:9px 12px 8px;
  border-radius:10px 10px 0 0;
  background:var(--panel,#2b2d31);
  border-bottom:1px solid color-mix(in srgb,var(--muted) 18%,transparent);
  color:var(--muted);
  font-size:13px;
}
.replying:has(*){display:block}
.replying+.pending-attachment[hidden]+.typing+.composer,
.replying:has(*)~.composer{border-top-left-radius:0;border-top-right-radius:0}
.replying b{color:var(--strong)}
.replying .cancel-reply{float:right;margin-left:12px}
.typing{min-height:18px;padding:2px 10px 0;font-size:12px;color:var(--muted)}

.message.editing-message{background:color-mix(in srgb,var(--brand) 6%,transparent)}
.message.editing-message .msg-actions{display:none!important}
.message-edit-box{width:100%;padding-top:2px}
.message-edit-input{
  display:block;
  width:100%;
  min-height:44px;
  max-height:240px;
  padding:10px 12px;
  border:1px solid transparent;
  border-radius:8px;
  outline:0;
  resize:none;
  overflow-y:auto;
  background:var(--input,#383a40);
  color:var(--text);
  font:inherit;
  line-height:1.375rem;
  caret-color:var(--text);
}
.message-edit-input:focus{border-color:var(--brand)}
.message-edit-help{padding:5px 2px 0;color:var(--muted);font-size:12px;line-height:16px}
.message-edit-help .link{font-size:inherit}
.message-edit-saving{opacity:.72}

.modal-backdrop:has(.messagebox){background:rgba(0,0,0,.72)}
.modal:has(.messagebox){
  width:min(440px,calc(100vw - 32px));
  padding:0;
  overflow:hidden;
  border-radius:12px;
  background:var(--panel,#313338);
  box-shadow:0 16px 40px rgba(0,0,0,.45);
}
.modal:has(.messagebox)>.close{display:none}
.messagebox{width:100%;margin:0}
.messagebox-header{display:flex;align-items:flex-start;gap:14px;padding:22px 22px 16px}
.messagebox-symbol{
  display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;
  border-radius:50%;background:color-mix(in srgb,var(--brand) 18%,transparent);
  color:var(--brand);font-weight:800;font-size:19px
}
.messagebox-danger .messagebox-symbol{background:color-mix(in srgb,#da373c 18%,transparent);color:#f23f42}
.messagebox-header>div{min-width:0;flex:1}
.messagebox h2{margin:0 0 8px;padding:0;font-size:20px;line-height:24px;color:var(--strong)}
.messagebox p{margin:0;color:var(--text);line-height:20px;overflow-wrap:anywhere}
.messagebox-body{padding:0 22px}
.messagebox-body:empty{display:none}
.messagebox-field small{display:block;margin:6px 2px 16px;color:var(--muted);font-size:12px}
.messagebox-input{width:100%;min-height:104px;max-height:280px;resize:vertical}
.messagebox-actions{
  display:flex;justify-content:flex-end;align-items:center;gap:8px;
  margin:0;padding:16px 22px;background:var(--bg-secondary,#2b2d31)
}
.messagebox-actions>button{min-width:96px;min-height:38px;margin:0}
.messagebox-cancel{background:transparent!important;border-color:transparent!important}
.messagebox-cancel:hover{text-decoration:underline;background:transparent!important}

:root[data-theme="light"] .composer,
:root[data-theme="light"] .message-edit-input{background:#ebedef}
:root[data-theme="light"] .modal:has(.messagebox){background:#fff}
:root[data-theme="light"] .messagebox-actions{background:#f2f3f5}

/* Mobile rule moved to assets/css/mobile.css. */


/* v2.01 uploads, moderation, mute and nudge */
.upload-progress{margin:0 0 8px;padding:10px 12px;border-radius:10px;background:var(--bg-secondary);border:1px solid var(--border)}
.upload-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.upload-progress-head>span{min-width:0;display:flex;flex-direction:column}.upload-progress-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-progress-head small{color:var(--muted);margin-top:2px}.upload-progress progress{width:100%;height:6px}.upload-cancel{min-height:30px;padding:4px 10px;flex:0 0 auto}
.muted-conversation,.muted-inherited{opacity:.58}.muted-conversation::after{content:'🔕';margin-left:auto;font-size:12px}.muted-inherited::after{content:none!important}.profile-header-action[data-mute-user][aria-pressed="true"]{background:color-mix(in srgb,var(--brand) 18%,var(--bg-secondary));color:var(--strong)}
.mute-dialog,.ban-dialog{padding:22px}.mute-dialog p,.ban-dialog p{color:var(--muted);margin:6px 0 18px}.mute-dialog label,.ban-dialog label{display:block;margin:14px 0 8px;font-weight:700}.optional{font-weight:400;color:var(--muted);font-size:12px}.ban-reason{min-height:92px;resize:vertical}
.nudge-message{background:color-mix(in srgb,var(--brand) 12%,transparent);border-radius:8px;margin:3px 8px;padding:10px 12px}.nudge-symbol{width:40px;height:40px;display:grid;place-items:center;font-size:24px;background:var(--brand);border-radius:50%}
.nudge{font-size:18px!important}
@keyframes appNudge{0%,100%{transform:translate3d(0,0,0)}8%{transform:translate3d(-12px,5px,0)}16%{transform:translate3d(11px,-5px,0)}24%{transform:translate3d(-10px,-4px,0)}32%{transform:translate3d(10px,4px,0)}40%{transform:translate3d(-8px,3px,0)}48%{transform:translate3d(8px,-3px,0)}58%{transform:translate3d(-6px,-2px,0)}68%{transform:translate3d(6px,2px,0)}80%{transform:translate3d(-3px,1px,0)}90%{transform:translate3d(3px,-1px,0)}}
body.nudge-active{animation:appNudge .82s cubic-bezier(.36,.07,.19,.97);overflow:hidden;will-change:transform}
/* Keep DM activities accessible when search and the member panel are absent. */
.shell.members-unavailable .header-actions:not(.dm-games-available){display:none}
@media(prefers-reduced-motion:reduce){body.nudge-active{animation:none}}

/* v2.07 — DarkOrbit-inspired space HUD themes. */
:root[data-theme="orbit-blue"]{
  color-scheme:dark;
  --bg:#071521;--panel:#0b2234;--rail:#04101a;--top:#0b1d2c;
  --muted:#88a9bd;--text:#cfe7f4;--strong:#f3fbff;--accent:#1aa7e8;
  --danger:#ef4d61;--hover:#12354c;--input:#102d41;--green:#42d6a4;--yellow:#ffd166;
}
:root[data-theme="nebula"]{
  color-scheme:dark;
  --bg:#151126;--panel:#21183a;--rail:#0d0a18;--top:#1b1430;
  --muted:#aaa0c8;--text:#e4def5;--strong:#fff8ff;--accent:#8b5cf6;
  --danger:#f05275;--hover:#30234e;--input:#2a2043;--green:#57d9a3;--yellow:#f8c56a;
}
:root[data-theme="promerium"]{
  color-scheme:dark;
  --bg:#071916;--panel:#0c2823;--rail:#03110f;--top:#0a211d;
  --muted:#89b5aa;--text:#d5f0e9;--strong:#f0fff9;--accent:#19c99a;
  --danger:#ff5268;--hover:#123a32;--input:#10332c;--green:#48e09d;--yellow:#d8f06a;
}
:root[data-theme="solar-flare"]{
  color-scheme:dark;
  --bg:#1a1009;--panel:#2a1a0e;--rail:#0e0905;--top:#24160c;
  --muted:#c1a487;--text:#f2dfcc;--strong:#fff8ef;--accent:#f28c28;
  --danger:#ef4558;--hover:#3b2513;--input:#34200f;--green:#7bd88f;--yellow:#ffc857;
}

:root[data-theme="orbit-blue"] body,
:root[data-theme="orbit-blue"] #app,
:root[data-theme="orbit-blue"] .main,
:root[data-theme="orbit-blue"] .messages,
:root[data-theme="orbit-blue"] .friends,
:root[data-theme="orbit-blue"] .settings-content{
  background:radial-gradient(circle at 78% 12%,rgba(23,123,180,.18),transparent 34%),linear-gradient(145deg,#091d2d 0%,#071521 48%,#04101a 100%);
}
:root[data-theme="orbit-blue"] .sidebar,
:root[data-theme="orbit-blue"] .members,
:root[data-theme="orbit-blue"] .settings-nav,
:root[data-theme="orbit-blue"] .userbar{
  background:linear-gradient(180deg,#0d2a40 0%,#081b2a 100%);
}
:root[data-theme="orbit-blue"] .header,
:root[data-theme="orbit-blue"] .sidebar-title,
:root[data-theme="orbit-blue"] .modal,
:root[data-theme="orbit-blue"] .context-menu,
:root[data-theme="orbit-blue"] .presence-popover{
  background:linear-gradient(180deg,#11334b 0%,#0a2132 100%);
  border-color:#1d5474;
}

:root[data-theme="nebula"] body,
:root[data-theme="nebula"] #app,
:root[data-theme="nebula"] .main,
:root[data-theme="nebula"] .messages,
:root[data-theme="nebula"] .friends,
:root[data-theme="nebula"] .settings-content{
  background:radial-gradient(circle at 75% 10%,rgba(151,71,255,.2),transparent 34%),radial-gradient(circle at 18% 82%,rgba(203,65,151,.12),transparent 32%),linear-gradient(145deg,#1c1531,#120d21 62%,#0b0814);
}
:root[data-theme="nebula"] .sidebar,
:root[data-theme="nebula"] .members,
:root[data-theme="nebula"] .settings-nav,
:root[data-theme="nebula"] .userbar{
  background:linear-gradient(180deg,#2a1d48,#171028);
}
:root[data-theme="nebula"] .header,
:root[data-theme="nebula"] .sidebar-title,
:root[data-theme="nebula"] .modal,
:root[data-theme="nebula"] .context-menu,
:root[data-theme="nebula"] .presence-popover{
  background:linear-gradient(180deg,#322152,#201637);
  border-color:#50377b;
}

:root[data-theme="promerium"] body,
:root[data-theme="promerium"] #app,
:root[data-theme="promerium"] .main,
:root[data-theme="promerium"] .messages,
:root[data-theme="promerium"] .friends,
:root[data-theme="promerium"] .settings-content{
  background:radial-gradient(circle at 80% 12%,rgba(24,208,150,.15),transparent 32%),linear-gradient(145deg,#0a2620,#061713 58%,#020c0a);
}
:root[data-theme="promerium"] .sidebar,
:root[data-theme="promerium"] .members,
:root[data-theme="promerium"] .settings-nav,
:root[data-theme="promerium"] .userbar{
  background:linear-gradient(180deg,#10362f,#071c18);
}
:root[data-theme="promerium"] .header,
:root[data-theme="promerium"] .sidebar-title,
:root[data-theme="promerium"] .modal,
:root[data-theme="promerium"] .context-menu,
:root[data-theme="promerium"] .presence-popover{
  background:linear-gradient(180deg,#15463d,#0a2923);
  border-color:#226b5d;
}

:root[data-theme="solar-flare"] body,
:root[data-theme="solar-flare"] #app,
:root[data-theme="solar-flare"] .main,
:root[data-theme="solar-flare"] .messages,
:root[data-theme="solar-flare"] .friends,
:root[data-theme="solar-flare"] .settings-content{
  background:radial-gradient(circle at 82% 10%,rgba(242,140,40,.18),transparent 34%),linear-gradient(145deg,#25170c,#160d07 58%,#0b0704);
}
:root[data-theme="solar-flare"] .sidebar,
:root[data-theme="solar-flare"] .members,
:root[data-theme="solar-flare"] .settings-nav,
:root[data-theme="solar-flare"] .userbar{
  background:linear-gradient(180deg,#38220f,#1d1108);
}
:root[data-theme="solar-flare"] .header,
:root[data-theme="solar-flare"] .sidebar-title,
:root[data-theme="solar-flare"] .modal,
:root[data-theme="solar-flare"] .context-menu,
:root[data-theme="solar-flare"] .presence-popover{
  background:linear-gradient(180deg,#452a12,#29180b);
  border-color:#71451e;
}

:root[data-theme="orbit-blue"] .server-btn.active,
:root[data-theme="orbit-blue"] .server-btn:hover,
:root[data-theme="nebula"] .server-btn.active,
:root[data-theme="nebula"] .server-btn:hover,
:root[data-theme="promerium"] .server-btn.active,
:root[data-theme="promerium"] .server-btn:hover,
:root[data-theme="solar-flare"] .server-btn.active,
:root[data-theme="solar-flare"] .server-btn:hover{
  box-shadow:0 0 18px color-mix(in srgb,var(--accent) 48%,transparent);
}
:root[data-theme="orbit-blue"] .composer,
:root[data-theme="nebula"] .composer,
:root[data-theme="promerium"] .composer,
:root[data-theme="solar-flare"] .composer{
  border:1px solid color-mix(in srgb,var(--composer-accent,var(--accent)) 25%,transparent);
  box-shadow:inset 0 1px rgba(255,255,255,.025),0 8px 24px rgba(0,0,0,.15);
}
:root[data-theme="orbit-blue"] .channel.active,
:root[data-theme="nebula"] .channel.active,
:root[data-theme="promerium"] .channel.active,
:root[data-theme="solar-flare"] .channel.active{
  background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 24%,var(--hover)),var(--hover));
  box-shadow:inset 3px 0 var(--accent);
}
.theme-card small{display:block;color:var(--muted);font-size:11px;font-weight:500;text-transform:none;line-height:1.25}
.orbit-blue-preview{background:radial-gradient(circle at 78% 20%,#1a88c3 0 8%,transparent 34%),linear-gradient(135deg,#03101a 0 30%,#0b2d46 30% 68%,#0f4c70 100%)}
.nebula-preview{background:radial-gradient(circle at 76% 18%,#a453e8 0 8%,transparent 34%),linear-gradient(135deg,#0d0918 0 28%,#2a1748 28% 68%,#5c266c 100%)}
.promerium-preview{background:radial-gradient(circle at 75% 18%,#22dda7 0 7%,transparent 33%),linear-gradient(135deg,#03110e 0 28%,#0b342b 28% 68%,#116b55 100%)}
.solar-flare-preview{background:radial-gradient(circle at 77% 18%,#ffbe4a 0 7%,transparent 33%),linear-gradient(135deg,#0d0804 0 28%,#3b210d 28% 68%,#8b4619 100%)}
@media(min-width:1100px){.four-themes{grid-template-columns:repeat(4,minmax(130px,1fr))!important}}


/* v2.09 — reliable voice connection panel and sidebar call controls. */
.sidebar-voice-box{flex:none;margin-top:auto;padding:10px 8px 8px;background:color-mix(in srgb,var(--panel) 88%,#000);border-top:1px solid color-mix(in srgb,var(--muted) 22%,transparent);box-shadow:0 -8px 22px #0002}
.sidebar-voice-box[hidden]{display:none!important}.voice-box-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.voice-box-status{display:flex;align-items:center;gap:8px;min-width:0}.voice-box-status>i{width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 10px color-mix(in srgb,var(--green) 70%,transparent);flex:none}.sidebar-voice-box.connecting .voice-box-status>i{background:var(--yellow);animation:voicePulse 1s ease-in-out infinite}.sidebar-voice-box.error .voice-box-status>i{background:var(--danger);box-shadow:none}.voice-box-status span{min-width:0;display:flex;flex-direction:column}.voice-box-status strong{font-size:13px;color:var(--green)}.sidebar-voice-box.connecting .voice-box-status strong{color:var(--yellow)}.sidebar-voice-box.error .voice-box-status strong{color:var(--danger)}.voice-box-status small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.voice-box-actions{display:flex;align-items:center;gap:6px;margin-top:9px}.voice-box-actions .icon-btn{width:32px;height:30px;border-radius:6px;background:var(--hover)}.voice-box-actions .icon-btn:hover{background:color-mix(in srgb,var(--hover) 72%,var(--strong) 12%)}.voice-box-actions .icon-btn.active{background:var(--danger);color:#fff}.voice-box-actions .secondary{margin-left:auto;min-height:30px;padding:5px 10px}.voice-box-error{font-size:11px;color:var(--muted);margin:7px 0 0}.sidebar-channel-item.voice-current>.channel{color:var(--strong);background:var(--hover)}.sidebar-channel-item.voice-current>.channel .hash{color:var(--green)}
.voice-stage-head{position:absolute;left:12px;right:12px;top:10px;z-index:3;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.voice-stage-head>div{display:flex;flex-direction:column;padding:7px 10px;border-radius:8px;background:#0008;backdrop-filter:blur(8px)}.voice-stage-head strong{color:#fff}.voice-stage-head small{color:#c8ccd2}.voice-stage-head .minimize{pointer-events:auto;background:#0009;color:#fff}.voice-stage .voice-grid{padding-top:58px}
@keyframes voicePulse{50%{opacity:.45;transform:scale(.82)}}
/* Mobile rule moved to assets/css/mobile.css. */
@media(prefers-reduced-motion:reduce){.sidebar-voice-box.connecting .voice-box-status>i{animation:none}}

/* v2.09 voice presence and compact voice box */.voice-users:not([hidden]){display:flex;flex-direction:column;margin-top:2px;margin-bottom:3px}.voice-box-actions{justify-content:flex-start}.voice-box-actions .voice-box-open{margin-right:auto}

/* v2.12 — stable application-style voice-channel presentation */
.voice-channel-button{min-height:32px;padding-top:5px;padding-bottom:5px}
.voice-channel-button .voice-channel-icon{width:20px;display:grid;place-items:center;font-size:15px;filter:saturate(.25);opacity:.82}
.sidebar-channel-item.voice-current>.voice-channel-button .voice-channel-icon,
.sidebar-channel-item.voice-occupied>.voice-channel-button .voice-channel-icon{filter:none;opacity:1}
.voice-channel-count{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;display:inline-grid;place-items:center;background:color-mix(in srgb,var(--hover) 74%,#000 10%);color:var(--muted);font-size:11px;font-weight:700;line-height:1}
.voice-channel-count[hidden]{display:none!important}
.voice-users{margin:1px 0 4px;padding-left:24px;display:flex;flex-direction:column;gap:1px}
.voice-users[hidden]{display:none!important}
.voice-users .voice-presence-user{min-height:30px;padding:3px 8px;border-radius:4px;transition:background-color .12s ease,color .12s ease,opacity .12s ease}
.voice-users .voice-presence-user .avatar{width:24px;height:24px;min-width:24px}
.voice-users .voice-presence-name{font-size:13px;font-weight:500}
.voice-users .voice-presence-flags{margin-left:auto;align-items:center;opacity:.8}
.voice-users .voice-presence-user.broadcasting{color:var(--strong)}
.voice-users .voice-presence-user.broadcasting .voice-presence-name{color:var(--green)}
.sidebar-channel-item.voice-current>.voice-channel-button{background:var(--hover);color:var(--strong)}
.sidebar-channel-item.voice-current>.voice-channel-button::after{content:var(--i18n-connected,'CONNECTED');margin-left:5px;color:var(--green);font-size:9px;font-weight:800;letter-spacing:.04em}
.voice-stage{z-index:11}
/* Mobile rule moved to assets/css/mobile.css. */

/* v2.13 — application-style voice channel hierarchy */
.voice-channel-button{
  position:relative;
  min-height:34px;
  padding:5px 8px;
  gap:6px;
  border-radius:4px;
  color:var(--muted);
}
.voice-channel-button .voice-channel-icon{
  width:20px;
  height:20px;
  display:grid;
  place-items:center;
  flex:none;
  opacity:.78;
  filter:none;
}
.voice-channel-button .voice-channel-icon .app-icon{
  width:18px;
  height:18px;
  stroke-width:1.9;
}
.voice-channel-button .channel-label{
  min-width:0;
  flex:1;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font-size:15px;
  line-height:20px;
  font-weight:500;
}
.voice-channel-join{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  flex:none;
  border-radius:4px;
  opacity:0;
  color:var(--muted);
  transition:opacity .12s ease,color .12s ease,background-color .12s ease;
}
.voice-channel-join .app-icon{width:15px;height:15px;stroke-width:2}
.voice-channel-button:hover .voice-channel-join,
.voice-channel-button:focus-visible .voice-channel-join{opacity:1}
.voice-channel-button:hover .voice-channel-icon,
.voice-channel-button:focus-visible .voice-channel-icon,
.sidebar-channel-item.voice-occupied>.voice-channel-button .voice-channel-icon,
.sidebar-channel-item.voice-current>.voice-channel-button .voice-channel-icon{opacity:1}
.sidebar-channel-item.voice-current>.voice-channel-button{
  color:var(--strong);
  background:var(--hover);
}
.sidebar-channel-item.voice-current>.voice-channel-button::after{content:none!important}
.sidebar-channel-item.voice-current>.voice-channel-button .voice-channel-icon{color:var(--green)}

.voice-channel-count{
  min-width:34px;
  height:20px;
  margin-left:auto;
  padding:0 6px;
  border-radius:5px;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  flex:none;
  background:color-mix(in srgb,var(--hover) 82%,#000 8%);
  color:var(--muted);
  font-size:11px;
  font-weight:700;
  line-height:1;
  letter-spacing:.01em;
  font-variant-numeric:tabular-nums;
}
.voice-channel-count[hidden]{display:none!important}
.voice-channel-count.full{background:color-mix(in srgb,var(--danger) 18%,var(--hover));color:var(--danger)}
.voice-channel-button.has-user-limit .voice-channel-join{display:none}
.voice-channel-button.has-user-limit:hover .voice-channel-count,
.voice-channel-button.has-user-limit:focus-visible .voice-channel-count{color:var(--strong)}

.voice-users{
  margin:1px 0 3px;
  padding:0 4px 0 28px;
  gap:0;
}
.voice-users .voice-presence-user{
  width:100%;
  min-height:30px;
  padding:3px 6px;
  gap:8px;
  border-radius:4px;
  color:var(--muted);
  opacity:.92;
}
.voice-users .voice-presence-user:hover,
.voice-users .voice-presence-user:focus-visible{
  background:var(--hover);
  color:var(--strong);
  opacity:1;
}
.voice-users .voice-presence-user .avatar{
  width:24px;
  height:24px;
  min-width:24px;
  font-size:10px;
}
.voice-users .voice-presence-user .status-dot{
  width:8px;
  height:8px;
  right:-1px;
  bottom:-1px;
  border-width:2px;
  border-color:var(--panel);
}
.voice-users .voice-presence-name{
  min-width:0;
  flex:1;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font-size:13px;
  font-weight:500;
  line-height:18px;
}
.voice-users .voice-presence-flags{
  min-width:0;
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:4px;
  color:var(--muted);
  opacity:.86;
}
.voice-users .voice-flag{
  width:16px;
  height:16px;
  display:grid;
  place-items:center;
}
.voice-users .voice-flag .app-icon{width:14px;height:14px;stroke-width:2.2}
.voice-users .voice-flag.sharing{color:var(--green)}
.voice-users .voice-presence-user.broadcasting .voice-presence-name{color:var(--strong)}
.voice-users .voice-presence-user.broadcasting{cursor:pointer}
.sidebar-channel-item.voice-occupied>.voice-channel-button{color:color-mix(in srgb,var(--strong) 78%,var(--muted))}

/* Mobile rule moved to assets/css/mobile.css. */



.voice-live-badge{
  flex:none;
  height:16px;
  padding:0 5px;
  display:inline-flex;
  align-items:center;
  border-radius:3px;
  background:#ed4245;
  color:#fff;
  font-size:9px;
  line-height:16px;
  font-weight:800;
  letter-spacing:.04em;
  box-shadow:0 0 0 1px color-mix(in srgb,#ed4245 75%,#000);
}
.voice-users .voice-presence-user.broadcasting{
  opacity:1;
}
.voice-users .voice-presence-user.broadcasting .voice-presence-name{
  color:var(--strong);
  font-weight:600;
}
/* Mobile rule moved to assets/css/mobile.css. */


/* v2.18 — Distinguish a self-muted microphone from unavailable/denied microphone access. */
.voice-users .voice-flag.microphone-muted{color:var(--muted)}
.voice-users .voice-flag.microphone-unavailable{
  position:relative;
  color:var(--danger,#f23f42);
}
.voice-users .voice-flag.microphone-unavailable b{
  position:absolute;
  right:-3px;
  bottom:-3px;
  min-width:9px;
  height:9px;
  padding:0 1px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--danger,#f23f42);
  color:#fff;
  font:700 7px/1 system-ui,sans-serif;
  box-shadow:0 0 0 1.5px var(--sidebar,#2b2d31);
}

/* v2.19 — Permission-aware local microphone controls. */
.userbar-mute.microphone-unavailable,
.voice-stage .mute.microphone-unavailable{
  position:relative;
  color:var(--danger,#f23f42)!important;
  background:color-mix(in srgb,var(--danger,#f23f42) 18%,transparent)!important;
}
.userbar-mute.microphone-unavailable::before,
.voice-stage .mute.microphone-unavailable::before{
  content:'!';
  position:absolute;
  right:2px;
  bottom:2px;
  min-width:11px;
  height:11px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--danger,#f23f42);
  color:#fff;
  font:800 8px/1 system-ui,sans-serif;
  box-shadow:0 0 0 2px var(--sidebar,#2b2d31);
}


/* v2.21 custom-status emoji picker */
.custom-status-row{align-items:center}
.status-emoji-trigger,.settings-status-emoji-trigger{width:38px;height:36px;display:grid;place-items:center;flex:none;border:1px solid transparent;border-radius:6px;background:var(--input);color:var(--strong);font-size:20px;line-height:1;cursor:pointer}
.status-emoji-trigger:hover,.settings-status-emoji-trigger:hover,.status-emoji-trigger:focus-visible,.settings-status-emoji-trigger:focus-visible{background:var(--hover);border-color:var(--accent);outline:none}
.custom-status-emoji-picker{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;margin:0 7px 8px;padding:8px;border:1px solid color-mix(in srgb,var(--muted) 30%,transparent);border-radius:8px;background:var(--panel-2,var(--panel));box-shadow:0 10px 28px #0007;max-height:180px;overflow:auto}
.status-emoji-option{min-width:0;width:100%;aspect-ratio:1;border:0;border-radius:5px;background:transparent;color:var(--strong);font-size:20px;line-height:1;cursor:pointer}
.status-emoji-option:hover,.status-emoji-option:focus-visible{background:var(--hover);outline:none}.status-emoji-option.selected{background:var(--accent);color:#fff}.status-emoji-option.clear{font-size:23px;color:var(--muted)}
.settings-custom-status-row{display:flex;align-items:center;gap:8px}.settings-custom-status-row .field{flex:1;min-width:0;margin:0}
.profile-custom-status,.profile-preview-status{display:flex;align-items:center;gap:7px}.custom-status-emoji{font-size:1.15em;line-height:1;flex:none}
.user-meta small,.mobile-youbar-identity small,.member small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:root[data-theme="light"] .status-emoji-trigger,:root[data-theme="light"] .settings-status-emoji-trigger,:root[data-theme="light"] .custom-status-emoji-picker{background:#ebedef;color:#060607;border-color:#c7c9cd}
@media(max-width:480px){.custom-status-emoji-picker{grid-template-columns:repeat(7,minmax(0,1fr))}}

/* v2.22 richer custom-status emoji picker */
.presence-popover{width:min(330px,calc(100vw - 16px))}
.custom-status-emoji-picker{display:flex;flex-direction:column;margin:2px 7px 10px;padding:0;border:1px solid color-mix(in srgb,var(--muted) 26%,transparent);border-radius:12px;background:var(--panel-2,var(--panel));box-shadow:0 16px 42px #0009;max-height:360px;overflow:hidden}
.custom-status-emoji-picker[hidden]{display:none!important}
.status-emoji-picker-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 12px 9px}
.status-emoji-preview{display:flex;align-items:center;gap:10px;min-width:0}
.status-emoji-preview>span{width:40px;height:40px;display:grid;place-items:center;flex:none;border-radius:10px;background:color-mix(in srgb,var(--accent) 15%,var(--input));font-size:24px}
.status-emoji-preview div{min-width:0}.status-emoji-preview strong,.status-emoji-preview small{display:block}.status-emoji-preview strong{color:var(--strong);font-size:13px}.status-emoji-preview small{margin-top:2px;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.status-emoji-clear{border:0;background:transparent;color:var(--link,#00a8fc);font-weight:700;font-size:12px;padding:6px;border-radius:5px;cursor:pointer}.status-emoji-clear:hover{background:var(--hover)}
.status-emoji-search-wrap{display:flex;align-items:center;gap:7px;margin:0 10px 9px;padding:0 9px;border-radius:7px;background:var(--input);border:1px solid transparent}.status-emoji-search-wrap:focus-within{border-color:color-mix(in srgb,var(--accent) 75%,transparent)}
.status-emoji-search-wrap .app-icon{width:16px;height:16px;color:var(--muted)}.status-emoji-search{width:100%;height:34px;border:0;outline:0;background:transparent;color:var(--strong);font:inherit;font-size:13px}.status-emoji-search::placeholder{color:var(--muted)}
.status-emoji-tabs{display:flex;align-items:center;gap:3px;padding:0 10px 8px;border-bottom:1px solid color-mix(in srgb,var(--muted) 20%,transparent);overflow-x:auto;scrollbar-width:none}.status-emoji-tabs::-webkit-scrollbar{display:none}.status-emoji-tabs button{width:34px;height:32px;display:grid;place-items:center;flex:none;border:0;border-radius:7px;background:transparent;font-size:17px;filter:grayscale(.85);opacity:.66;cursor:pointer}.status-emoji-tabs button:hover{background:var(--hover);filter:none;opacity:1}.status-emoji-tabs button.active{background:color-mix(in srgb,var(--accent) 20%,var(--hover));filter:none;opacity:1;box-shadow:inset 0 -2px var(--accent)}
.status-emoji-scroll{min-height:130px;overflow:auto;padding:8px 9px 10px}.status-emoji-section h4{position:sticky;top:-8px;z-index:1;margin:0 0 5px;padding:7px 2px 5px;background:var(--panel-2,var(--panel));color:var(--muted);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.status-emoji-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.status-emoji-option{width:100%;aspect-ratio:1;min-width:0;border:0;border-radius:7px;background:transparent;color:var(--strong);font-size:22px;line-height:1;cursor:pointer;transition:background .12s ease,transform .12s ease}.status-emoji-option:hover,.status-emoji-option:focus-visible{background:var(--hover);transform:scale(1.12);outline:none}.status-emoji-option.selected{background:color-mix(in srgb,var(--accent) 35%,var(--hover));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 75%,transparent)}
.status-emoji-empty{padding:28px 12px;text-align:center;color:var(--muted);font-size:13px}
:root[data-theme="light"] .custom-status-emoji-picker{background:#fff;color:#060607;border-color:#c7c9cd;box-shadow:0 14px 36px #0003}:root[data-theme="light"] .status-emoji-section h4{background:#fff}:root[data-theme="light"] .status-emoji-search-wrap{background:#ebedef}
@media(max-width:480px){.presence-popover{width:calc(100vw - 16px)}.custom-status-emoji-picker{max-height:min(390px,58dvh)}.status-emoji-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.status-emoji-option{font-size:21px}}

/* v2.23 drag cursor semantics */
.sortable-row,.role-row{cursor:default}
.sortable-row :is(button,input,select,textarea),.role-row{cursor:pointer}
.drag-handle,.sidebar-drag-grip{cursor:grab}
.dragging,.dragging *{cursor:grabbing!important}


/* application v2.31 synchronization and mobile layout stabilization */
.server-owner-crown{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;margin-left:5px;color:#f0b232;vertical-align:-2px;filter:drop-shadow(0 1px 1px #0006)}.server-owner-crown svg{width:16px;height:16px;fill:currentColor;stroke:none}.member strong{display:flex;align-items:center;min-width:0}.member strong>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-owner-badge{display:inline-flex;margin-left:8px;padding:2px 7px;border-radius:999px;background:linear-gradient(135deg,#5865f2,#8b5cf6);color:#fff;font-size:10px;font-weight:800;line-height:1.5;vertical-align:middle}.friends-tab{justify-content:flex-start}.friends-tab .friends-pending-badge{margin-left:auto;display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:10px;background:#f23f43;color:#fff;font-size:10px}.friends-tab .friends-pending-badge[hidden]{display:none!important}.friend .actions{display:flex;align-items:center;gap:8px}.friend [data-accept]{background:#248046;color:#fff;border-radius:8px;padding:8px 13px}
/* Mobile rule moved to assets/css/mobile.css. */

/* v2.32 — highest-role username colors across server surfaces */
.role-colored{color:var(--member-role-color,var(--strong))!important}.member.offline .role-colored{opacity:.62}.voice-presence-name.role-colored{color:var(--member-role-color,var(--strong))!important}.search-result strong.role-colored{color:var(--member-role-color,var(--strong))!important}

/* v2.34 — member section headings stay neutral */
.member-section-title{color:var(--muted)!important}

/* v2.38 — Friend requests and stable Home social layout */
.friends{max-width:980px;margin:0 auto;padding:32px 28px 60px;width:100%;box-sizing:border-box}
.friends-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}
.friends-toolbar h1{margin:0 0 4px;font-size:24px}
.friends-toolbar p{margin:0;color:var(--muted)}
.friend-requests-card,.friends-section{border:1px solid var(--border);background:color-mix(in srgb,var(--panel) 92%,transparent);border-radius:14px;margin-bottom:22px;overflow:hidden}
.friend-requests-card.has-requests{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}
.friend-section-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border)}
.friend-section-head>div{display:flex;align-items:center;gap:12px;min-width:0}
.friend-section-head h2,.friends-section>h2{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.friend-section-head p{margin:3px 0 0;color:var(--muted);font-size:13px}
.friend-request-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}
.friend-request-icon svg{width:19px;height:19px}
.friend-request-list{padding:6px 10px 10px}
.friend-request-empty,.friends-empty{padding:18px;color:var(--muted);text-align:center}
.friends-section>h2{padding:15px 18px;border-bottom:1px solid var(--border)}
.friend{display:flex;align-items:center;gap:12px;min-height:58px;padding:8px 10px;border-radius:9px}
.friend:hover{background:var(--hover)}
.friend-copy{min-width:0;flex:1}
.friend-copy strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.friend-copy small{display:block;margin-top:2px;color:var(--muted)}
.friend .actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.friend-action{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;cursor:pointer;background:var(--input);color:var(--text)}
.friend-action svg{width:18px;height:18px}
.friend-action.accept:hover{background:var(--success,#23a55a);color:#fff}
.friend-action.decline:hover{background:var(--danger,#da373c);color:#fff}
/* Mobile rule moved to assets/css/mobile.css. */


/* application v2.43 application administration settings */
.admin-settings-grid{display:grid;gap:14px;margin-bottom:16px}.admin-settings-grid>h3{margin:0;color:var(--header-primary)}.admin-settings-grid>label:not(.app-switch-row){display:grid;gap:7px;color:var(--header-secondary);font-size:13px;font-weight:600}.admin-settings-grid textarea{resize:vertical;min-height:72px}.admin-number-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-number-grid label{display:grid;gap:7px;color:var(--header-secondary);font-size:13px;font-weight:600}/* Mobile rule moved to assets/css/mobile.css. */

/* v2.44 friend request response states */
.friend-requests-card.outgoing-requests{border-color:color-mix(in srgb,var(--accent) 28%,var(--border));}
.friend-requests-card.outgoing-requests.has-outgoing{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent);}
.friend-request-icon.outgoing{background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent);}
.friend-request-icon.outgoing svg{width:18px;height:18px;}
.friend-requests-card .friend-copy small{display:block;margin-top:3px;}
.outgoing-requests .friend-copy small{color:var(--muted);}

/* v2.55 development diagnostics */
.dev-diagnostics{position:fixed;right:12px;bottom:12px;z-index:10000;width:min(420px,calc(100vw - 24px));max-height:50vh;overflow:auto;padding:12px;border:1px solid var(--border,#3f4147);border-radius:10px;background:var(--background-secondary,#2b2d31);box-shadow:0 12px 36px rgba(0,0,0,.35);font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace}.dev-diagnostics header{display:flex;align-items:center;justify-content:space-between}.dev-diagnostics button{border:0;background:transparent;color:inherit;font-size:20px}.dev-diagnostics small{display:block;padding:3px 0;border-top:1px solid rgba(255,255,255,.06)}
.members-state{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px;text-align:center;color:var(--text-muted,#949ba4)}
.members-state strong{color:var(--text-normal,#dbdee1);font-size:14px}.members-state span{max-width:220px;font-size:12px;line-height:1.4}

/* v2.63 member-list state isolation */
.members-state{width:100%;box-sizing:border-box;flex:0 0 auto}
.members-state+ .member-section{margin-top:0}
.members>.member-section{width:100%;min-width:0;box-sizing:border-box}
.members>.member-section .member-section-list{min-width:0}

/* Message author interaction */
.message .msg-head strong:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}


/* v1.42 application 2026-inspired and expanded application themes */
:root[data-theme="midnight-blurple"]{--bg:#171426;--panel:#211d35;--rail:#100e1b;--top:#211d35;--muted:#aaa5c7;--text:#e7e4f6;--strong:#fff;--accent:#7c6cff;--hover:#2d2847;--input:#2a2542;--green:#35c978;--yellow:#f4c75b}
:root[data-theme="chroma-glow"]{--bg:#151423;--panel:#211f34;--rail:#0e0d18;--top:#24213a;--muted:#b4aec8;--text:#ece9f5;--strong:#fff;--accent:#8d63ff;--hover:#302c48;--input:#2b2841;--green:#31d69b;--yellow:#ffd35b}
:root[data-theme="citrus-sherbert"]{--bg:#2a1715;--panel:#38201c;--rail:#1b0f0e;--top:#3b211d;--muted:#d0aaa0;--text:#f6e7df;--strong:#fff8f2;--accent:#ff845c;--hover:#4a2923;--input:#452720;--green:#55c977;--yellow:#ffd064}
:root[data-theme="retro-raincloud"]{--bg:#292733;--panel:#35323f;--rail:#201e28;--top:#373440;--muted:#b3afc1;--text:#ebe8ef;--strong:#fff;--accent:#8f82b9;--hover:#454150;--input:#403c49;--green:#52bd82;--yellow:#d7bc70}
:root[data-theme="mint-apple"]{--bg:#10231f;--panel:#17312b;--rail:#091713;--top:#19352e;--muted:#9dc6bb;--text:#e0f3ed;--strong:#f5fffb;--accent:#43cda1;--hover:#21443b;--input:#1f4037;--green:#42d68e;--yellow:#e4c761}
:root[data-theme="crimson-moon"]{--bg:#210f18;--panel:#301722;--rail:#140910;--top:#331925;--muted:#c5a0ad;--text:#f3e2e8;--strong:#fff6f8;--accent:#e34b70;--hover:#42202f;--input:#3d1e2b;--green:#4ac681;--yellow:#edbd5c}

:root[data-theme="midnight-blurple"] body,:root[data-theme="midnight-blurple"] #app,:root[data-theme="midnight-blurple"] .main,:root[data-theme="midnight-blurple"] .messages,:root[data-theme="midnight-blurple"] .friends,:root[data-theme="midnight-blurple"] .settings-content{background:radial-gradient(circle at 82% 8%,#4b3ea026 0,transparent 32%),var(--bg)}
:root[data-theme="chroma-glow"] body,:root[data-theme="chroma-glow"] #app,:root[data-theme="chroma-glow"] .main,:root[data-theme="chroma-glow"] .messages,:root[data-theme="chroma-glow"] .friends,:root[data-theme="chroma-glow"] .settings-content{background:radial-gradient(circle at 92% 4%,#ff4fa62c,transparent 28%),radial-gradient(circle at 28% 100%,#25bce62a,transparent 34%),var(--bg)}
:root[data-theme="citrus-sherbert"] body,:root[data-theme="citrus-sherbert"] #app,:root[data-theme="citrus-sherbert"] .main,:root[data-theme="citrus-sherbert"] .messages,:root[data-theme="citrus-sherbert"] .friends,:root[data-theme="citrus-sherbert"] .settings-content{background:radial-gradient(circle at 86% 6%,#ffb04b2e,transparent 31%),var(--bg)}
:root[data-theme="retro-raincloud"] body,:root[data-theme="retro-raincloud"] #app,:root[data-theme="retro-raincloud"] .main,:root[data-theme="retro-raincloud"] .messages,:root[data-theme="retro-raincloud"] .friends,:root[data-theme="retro-raincloud"] .settings-content{background:linear-gradient(145deg,#34303f55,transparent 42%),var(--bg)}
:root[data-theme="mint-apple"] body,:root[data-theme="mint-apple"] #app,:root[data-theme="mint-apple"] .main,:root[data-theme="mint-apple"] .messages,:root[data-theme="mint-apple"] .friends,:root[data-theme="mint-apple"] .settings-content{background:radial-gradient(circle at 88% 7%,#57e5b72c,transparent 30%),var(--bg)}
:root[data-theme="crimson-moon"] body,:root[data-theme="crimson-moon"] #app,:root[data-theme="crimson-moon"] .main,:root[data-theme="crimson-moon"] .messages,:root[data-theme="crimson-moon"] .friends,:root[data-theme="crimson-moon"] .settings-content{background:radial-gradient(circle at 87% 7%,#d9335d32,transparent 31%),var(--bg)}

:root[data-theme="midnight-blurple"] .sidebar,:root[data-theme="midnight-blurple"] .members,:root[data-theme="midnight-blurple"] .settings-nav,:root[data-theme="midnight-blurple"] .userbar,
:root[data-theme="chroma-glow"] .sidebar,:root[data-theme="chroma-glow"] .members,:root[data-theme="chroma-glow"] .settings-nav,:root[data-theme="chroma-glow"] .userbar,
:root[data-theme="citrus-sherbert"] .sidebar,:root[data-theme="citrus-sherbert"] .members,:root[data-theme="citrus-sherbert"] .settings-nav,:root[data-theme="citrus-sherbert"] .userbar,
:root[data-theme="retro-raincloud"] .sidebar,:root[data-theme="retro-raincloud"] .members,:root[data-theme="retro-raincloud"] .settings-nav,:root[data-theme="retro-raincloud"] .userbar,
:root[data-theme="mint-apple"] .sidebar,:root[data-theme="mint-apple"] .members,:root[data-theme="mint-apple"] .settings-nav,:root[data-theme="mint-apple"] .userbar,
:root[data-theme="crimson-moon"] .sidebar,:root[data-theme="crimson-moon"] .members,:root[data-theme="crimson-moon"] .settings-nav,:root[data-theme="crimson-moon"] .userbar{background:color-mix(in srgb,var(--panel) 94%,black)}

:root[data-theme="midnight-blurple"] .header,:root[data-theme="midnight-blurple"] .modal,:root[data-theme="midnight-blurple"] .context-menu,:root[data-theme="midnight-blurple"] .presence-popover,
:root[data-theme="chroma-glow"] .header,:root[data-theme="chroma-glow"] .modal,:root[data-theme="chroma-glow"] .context-menu,:root[data-theme="chroma-glow"] .presence-popover,
:root[data-theme="citrus-sherbert"] .header,:root[data-theme="citrus-sherbert"] .modal,:root[data-theme="citrus-sherbert"] .context-menu,:root[data-theme="citrus-sherbert"] .presence-popover,
:root[data-theme="retro-raincloud"] .header,:root[data-theme="retro-raincloud"] .modal,:root[data-theme="retro-raincloud"] .context-menu,:root[data-theme="retro-raincloud"] .presence-popover,
:root[data-theme="mint-apple"] .header,:root[data-theme="mint-apple"] .modal,:root[data-theme="mint-apple"] .context-menu,:root[data-theme="mint-apple"] .presence-popover,
:root[data-theme="crimson-moon"] .header,:root[data-theme="crimson-moon"] .modal,:root[data-theme="crimson-moon"] .context-menu,:root[data-theme="crimson-moon"] .presence-popover{background:color-mix(in srgb,var(--top) 95%,black)}

.system-preview{background:linear-gradient(135deg,#f2f3f5 0 50%,#1e1f22 50% 100%)}
.midnight-blurple-preview{background:radial-gradient(circle at 75% 20%,#8175ff 0 8%,transparent 34%),linear-gradient(135deg,#100d1c 0 32%,#30275d 32% 70%,#6656d8 100%)}
.chroma-glow-preview{background:radial-gradient(circle at 18% 80%,#20d5d8 0 9%,transparent 38%),radial-gradient(circle at 82% 16%,#f04cab 0 8%,transparent 37%),linear-gradient(135deg,#12101d,#392b68)}
.citrus-sherbert-preview{background:radial-gradient(circle at 78% 18%,#ffd064 0 8%,transparent 34%),linear-gradient(135deg,#24100e 0 28%,#a94d2d 58%,#ff9466 100%)}
.retro-raincloud-preview{background:radial-gradient(circle at 74% 18%,#a89ac9 0 7%,transparent 32%),linear-gradient(135deg,#211f2a,#514b60 62%,#777086)}
.mint-apple-preview{background:radial-gradient(circle at 76% 17%,#75f3c9 0 8%,transparent 34%),linear-gradient(135deg,#091713,#1f6653 64%,#48cfa5)}
.crimson-moon-preview{background:radial-gradient(circle at 78% 18%,#ff6f91 0 8%,transparent 34%),linear-gradient(135deg,#150810,#641d35 63%,#c63d61)}
.theme-card{transition:transform .16s ease,border-color .16s ease,background .16s ease}.theme-card:hover{transform:translateY(-2px)}

/* v2.70 — Liquid Glass themes inspired by iOS 26/27 and macOS Tahoe */
:root[data-theme="liquid-glass-clear"],
:root[data-theme="liquid-glass-tinted"]{
 color-scheme:dark;
 --bg:#101522;
 --panel:rgba(28,35,52,.52);
 --rail:rgba(11,15,25,.60);
 --top:rgba(37,45,66,.48);
 --input:rgba(255,255,255,.085);
 --hover:rgba(255,255,255,.11);
 --text:#edf3ff;
 --strong:#fff;
 --muted:#b6c0d3;
 --accent:#79a8ff;
 --green:#49d58a;
 --yellow:#f5c85b;
 --border:rgba(255,255,255,.16);
 --glass-blur:28px;
 --glass-saturation:145%;
 --glass-opacity:.50;
 --glass-shadow:0 18px 48px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(255,255,255,.05);
}
:root[data-theme="liquid-glass-tinted"]{
 --bg:#11182a;
 --panel:rgba(28,38,60,.72);
 --rail:rgba(12,18,32,.78);
 --top:rgba(39,51,78,.70);
 --input:rgba(255,255,255,.10);
 --hover:rgba(255,255,255,.13);
 --muted:#c0cadc;
 --border:rgba(255,255,255,.20);
 --glass-blur:23px;
 --glass-saturation:132%;
 --glass-opacity:.72;
}
:root[data-theme^="liquid-glass"] body,
:root[data-theme^="liquid-glass"] #app{
 background:
  radial-gradient(circle at 14% 10%,rgba(73,128,255,.38),transparent 30%),
  radial-gradient(circle at 82% 14%,rgba(191,82,255,.27),transparent 28%),
  radial-gradient(circle at 58% 88%,rgba(52,209,187,.22),transparent 34%),
  linear-gradient(145deg,#111827 0%,#17213a 48%,#0d1424 100%);
 background-attachment:fixed;
}
:root[data-theme^="liquid-glass"] body::before{
 content:"";position:fixed;inset:-18%;pointer-events:none;z-index:-1;
 background:conic-gradient(from 210deg at 50% 50%,rgba(94,155,255,.18),rgba(201,96,255,.15),rgba(64,217,180,.12),rgba(94,155,255,.18));
 filter:blur(76px);animation:app-liquid-drift 24s ease-in-out infinite alternate;
}
@keyframes app-liquid-drift{to{transform:translate3d(4%,-3%,0) rotate(8deg) scale(1.06)}}
:root[data-theme^="liquid-glass"] :is(.rail,.sidebar,.members,.settings-nav,.userbar,.sidebar-voice-box,.header,.modal,.auth-card,.presence-popover,.context-menu,.settings-card,.account-hero,.account-details,.profile-preview-card,.voice-settings-card,.theme-card,.friend-requests-card,.friends-section,.composer,.msg-actions,.file-attachment,.audio-attachment){
 background:linear-gradient(145deg,rgba(255,255,255,.095),rgba(255,255,255,.025)),color-mix(in srgb,var(--panel) calc(var(--glass-opacity) * 100%),transparent)!important;
 border-color:var(--border)!important;
 box-shadow:var(--glass-shadow);
 -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));
 backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturation));
}
:root[data-theme^="liquid-glass"] :is(.rail,.sidebar,.members,.settings-nav){background-color:color-mix(in srgb,var(--rail) 88%,transparent)!important}
:root[data-theme^="liquid-glass"] :is(.header,.userbar,.sidebar-voice-box){background-color:color-mix(in srgb,var(--top) 86%,transparent)!important}
:root[data-theme^="liquid-glass"] :is(.main,.messages,.friends,.settings-content,.sidebar-scroll){background:transparent!important}
:root[data-theme^="liquid-glass"] :is(.primary,.server-btn.active,.channel.active,.friends-tab.active){
 box-shadow:inset 0 1px 0 rgba(255,255,255,.30),0 8px 22px rgba(76,118,255,.25);
}
:root[data-theme^="liquid-glass"] :is(button,.icon-btn,.secondary,.friend-action,.reaction){
 border-color:rgba(255,255,255,.13);
}
:root[data-theme^="liquid-glass"] :is(button,.icon-btn,.secondary,.friend-action,.reaction):hover{
 background-color:rgba(255,255,255,.14);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
}
:root[data-theme^="liquid-glass"] :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea,.field,.search){
 background:rgba(4,9,20,.30)!important;border:1px solid rgba(255,255,255,.14)!important;color:var(--text)!important;
 -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
}
:root[data-theme^="liquid-glass"] .message:hover{background:rgba(255,255,255,.055)}
:root[data-theme^="liquid-glass"] .theme-card.selected{border-color:rgba(151,190,255,.9)!important;box-shadow:0 0 0 2px rgba(112,163,255,.28),var(--glass-shadow)}
.liquid-glass-clear-preview{background:radial-gradient(circle at 22% 20%,#8cc8ff 0 8%,transparent 30%),radial-gradient(circle at 80% 70%,#c48cff 0 7%,transparent 31%),linear-gradient(135deg,rgba(255,255,255,.55),rgba(114,151,210,.20)),#17223b;box-shadow:inset 0 1px 0 #fff9}
.liquid-glass-tinted-preview{background:radial-gradient(circle at 24% 18%,#82b6ff 0 8%,transparent 31%),radial-gradient(circle at 78% 72%,#61d8c4 0 7%,transparent 30%),linear-gradient(135deg,rgba(92,128,190,.65),rgba(28,39,67,.82));box-shadow:inset 0 1px 0 #ffffff70}
@media(prefers-reduced-motion:reduce){:root[data-theme^="liquid-glass"] body::before{animation:none}}
@media(prefers-reduced-transparency:reduce){
 :root[data-theme^="liquid-glass"]{--panel:#232b3d;--rail:#151b28;--top:#2a344a;--glass-blur:0px;--glass-opacity:1}
 :root[data-theme^="liquid-glass"] :is(.rail,.sidebar,.members,.settings-nav,.userbar,.sidebar-voice-box,.header,.modal,.auth-card,.presence-popover,.context-menu,.settings-card,.account-hero,.account-details,.profile-preview-card,.voice-settings-card,.theme-card,.friend-requests-card,.friends-section,.composer,.msg-actions,.file-attachment,.audio-attachment){-webkit-backdrop-filter:none;backdrop-filter:none}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
 :root[data-theme="liquid-glass-clear"]{--panel:rgba(28,35,52,.94);--rail:rgba(11,15,25,.96);--top:rgba(37,45,66,.95)}
}

/* v1.?? — larger presence indicators across the application */
.status-dot{
  width:14px;
  height:14px;
  right:-2px;
  bottom:-2px;
  border-width:3px;
}
.profile-avatar-wrap .avatar.large .status-dot,
.profile-preview-body .avatar.large .status-dot{
  width:24px;
  height:24px;
  right:-2px;
  bottom:-2px;
  border-width:5px;
}
.mini-user .status-dot{
  width:10px;
  height:10px;
  right:-2px;
  bottom:-2px;
  border-width:2px;
}
.voice-users .voice-presence-user .status-dot{
  width:11px;
  height:11px;
  right:-2px;
  bottom:-2px;
  border-width:2px;
}
.presence-icon{
  width:14px;
  height:14px;
}


/* v2.52 — comprehensive mobile layout repair */
:root{--app-viewport-height:100dvh;--app-viewport-offset-top:0px}
/* Mobile rule moved to assets/css/mobile.css. */
@media(max-width:420px){
 .mobile-youbar{grid-template-columns:48px minmax(0,1fr) 48px 48px!important}.mobile-youbar-item{width:48px!important;min-width:48px!important}.mobile-youbar-profile{padding-right:6px!important}.mobile-youbar-identity small{display:none!important}
 .header .icon-btn{width:36px;min-width:36px}.header-actions{gap:2px!important}.friend .actions{max-width:76px}.friend-action{width:34px!important;height:34px!important}
}
/* Mobile rule moved to assets/css/mobile.css. */
/* Mobile rule moved to assets/css/mobile.css. */


/* v2.53 — mobile server drawer width and reliable touch selection */
/* Mobile rule moved to assets/css/mobile.css. */
@media (max-width:390px){
  :root{--mobile-server-drawer-width:100dvw}
}

/* v2.54 — authoritative mobile application shell (deep audit rebuild) */
/* Mobile rule moved to assets/css/mobile.css. */
@media (max-width:390px){
  :root{--mobile-drawer-w:100vw;--mobile-rail-w:64px}
  .mobile-youbar{grid-template-columns:48px minmax(0,1fr) 48px 48px!important}.mobile-youbar-item{width:48px!important;min-width:48px!important}.mobile-youbar-identity small{display:none!important}
}
/* Mobile rule moved to assets/css/mobile.css. */
/* Mobile rule moved to assets/css/mobile.css. */
@media (prefers-reduced-motion:reduce){.rail,.sidebar,.members,.mobile-backdrop{transition:none!important}}

/* Channel-specific access controls */
.channel-access-manager{max-width:720px}
.channel-access-list{max-height:260px;overflow:auto;overscroll-behavior:contain}
.channel-access-row{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:16px;padding:10px 12px;border-radius:8px}
.channel-access-row>span{min-width:0;display:flex;flex-direction:column;gap:3px}
.channel-access-row strong,.channel-access-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.channel-access-row small{opacity:.72}
.channel-access-select{margin:0}
/* Mobile rule moved to assets/css/mobile.css. */

/* application-like home navigation state. The Home rail item is selected only
   while Friends, a DM, or a group DM is active. */
.server-btn.home{background:var(--panel);color:var(--text)}
.server-btn.home:hover,.server-btn.home.active{background:var(--accent);color:#fff}
.dm-row>span,.group-row>span{min-width:0;display:flex;flex-direction:column}
.dm-row .dm-status,.member .member-custom-status{display:block;min-height:1.2em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none;font-size:11px;font-weight:400}
.member .member-custom-status:empty{display:none}


/* v2.50 — notification totals, stable role checkboxes, account presence, and richer theme previews */
.context-menu button > .context-menu-label{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
  flex:1 1 auto;
  line-height:18px;
}
.context-menu .context-menu-text{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.context-menu .context-check{
  box-sizing:border-box!important;
  display:inline-grid!important;
  place-items:center;
  flex:0 0 18px;
  width:18px!important;
  height:18px!important;
  min-width:18px;
  min-height:18px;
  margin:0!important;
  border:1px solid #80848e;
  border-radius:4px;
  font-size:12px;
  font-style:normal;
  line-height:1;
}
.context-menu .context-check.checked{
  border-color:transparent!important;
  background:var(--accent);
  color:#fff;
}
.context-menu .context-checkbox-item:disabled .context-check{opacity:.75}
.account-avatar-wrap .avatar.large .status-dot{
  width:24px;
  height:24px;
  right:-2px;
  bottom:-2px;
  border-width:5px;
}

.theme-card{
  position:relative;
  overflow:hidden;
  align-content:start;
  min-width:0;
  padding:9px;
  border-radius:12px;
  transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease;
}
.theme-card:hover{transform:translateY(-2px);box-shadow:0 9px 24px #0004}
.theme-card.selected{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 28%,transparent),0 9px 24px #0003}
.theme-preview{
  --tp-bg:#313338;
  --tp-rail:#1e1f22;
  --tp-sidebar:#2b2d31;
  --tp-main:#313338;
  --tp-line:#4e5058;
  --tp-text:#dbdee1;
  --tp-accent:#5865f2;
  position:relative;
  display:grid!important;
  grid-template-columns:17px 30px minmax(0,1fr);
  height:86px!important;
  overflow:hidden;
  isolation:isolate;
  border:1px solid color-mix(in srgb,var(--tp-line) 58%,transparent)!important;
  border-radius:8px!important;
  background:var(--tp-bg)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 4px 10px rgba(0,0,0,.18);
}
.theme-preview i,.theme-preview b,.theme-preview em,.theme-preview span,.theme-preview strong{box-sizing:border-box}
.theme-preview-rail{display:flex;flex-direction:column;align-items:center;gap:5px;padding:7px 3px;background:var(--tp-rail)}
.theme-preview-rail b{display:block;width:9px;height:9px;border-radius:50%;background:color-mix(in srgb,var(--tp-text) 18%,transparent)}
.theme-preview-rail b:first-child{border-radius:4px;background:var(--tp-accent);box-shadow:0 0 7px color-mix(in srgb,var(--tp-accent) 58%,transparent)}
.theme-preview-sidebar{display:flex;flex-direction:column;gap:6px;padding:16px 5px 6px;background:var(--tp-sidebar);border-right:1px solid color-mix(in srgb,var(--tp-line) 32%,transparent)}
.theme-preview-sidebar b{display:block;height:3px;border-radius:4px;background:color-mix(in srgb,var(--tp-text) 23%,transparent)}
.theme-preview-sidebar b:nth-child(2){width:74%}.theme-preview-sidebar b:nth-child(3){width:88%}.theme-preview-sidebar b:nth-child(4){width:58%}
.theme-preview-chat{position:relative;display:flex;flex-direction:column;gap:8px;padding:18px 7px 12px;background:var(--tp-main)}
.theme-preview-header{position:absolute;inset:0 0 auto;height:12px;background:color-mix(in srgb,var(--tp-main) 86%,var(--tp-text) 7%);border-bottom:1px solid color-mix(in srgb,var(--tp-line) 34%,transparent)}
.theme-preview-message{display:grid;grid-template-columns:8px 1fr;align-items:center;gap:5px}
.theme-preview-message em{width:8px;height:8px;border-radius:50%;background:color-mix(in srgb,var(--tp-accent) 78%,var(--tp-text));box-shadow:0 0 5px color-mix(in srgb,var(--tp-accent) 35%,transparent)}
.theme-preview-message b{height:4px;border-radius:4px;background:color-mix(in srgb,var(--tp-text) 31%,transparent)}
.theme-preview-message.short b{width:68%}
.theme-preview-composer{position:absolute;left:7px;right:7px;bottom:7px;height:9px;border-radius:4px;background:color-mix(in srgb,var(--tp-text) 10%,var(--tp-main));border:1px solid color-mix(in srgb,var(--tp-line) 36%,transparent)}

.system-preview{--tp-bg:linear-gradient(135deg,#f2f3f5 0 49.5%,#313338 50.5%);--tp-rail:#60646b;--tp-sidebar:#dadde2;--tp-main:rgba(49,51,56,.86);--tp-line:#757982;--tp-text:#fff;--tp-accent:#5865f2}
.light-preview{--tp-bg:#f2f3f5;--tp-rail:#d7d9dc;--tp-sidebar:#e3e5e8;--tp-main:#fff;--tp-line:#b5bac1;--tp-text:#313338;--tp-accent:#5865f2}
.ash-preview{--tp-bg:#24262b;--tp-rail:#191b1f;--tp-sidebar:#2a2d33;--tp-main:#32353c;--tp-line:#555a64;--tp-text:#e4e7eb;--tp-accent:#7785f5}
.dark-preview{--tp-bg:#313338;--tp-rail:#1e1f22;--tp-sidebar:#2b2d31;--tp-main:#313338;--tp-line:#4e5058;--tp-text:#dbdee1;--tp-accent:#5865f2}
.onyx-preview{--tp-bg:#090a0b;--tp-rail:#050607;--tp-sidebar:#0d0e10;--tp-main:#121316;--tp-line:#32343a;--tp-text:#ededee;--tp-accent:#6d78ff}
.midnight-blurple-preview{--tp-bg:#171328;--tp-rail:#0d0a18;--tp-sidebar:#251e46;--tp-main:#32285d;--tp-line:#685ba0;--tp-text:#efeaff;--tp-accent:#8175ff}
.chroma-glow-preview{--tp-bg:linear-gradient(135deg,#171222,#32265b);--tp-rail:#10101b;--tp-sidebar:#252044;--tp-main:#322957;--tp-line:#705a91;--tp-text:#f1ecff;--tp-accent:#f04cab}
.citrus-sherbert-preview{--tp-bg:#7b3828;--tp-rail:#24100e;--tp-sidebar:#69301f;--tp-main:#9a4d35;--tp-line:#d27d58;--tp-text:#fff1e9;--tp-accent:#ffd064}
.retro-raincloud-preview{--tp-bg:#45404f;--tp-rail:#211f2a;--tp-sidebar:#393542;--tp-main:#514b60;--tp-line:#817994;--tp-text:#f0edf5;--tp-accent:#b9a8df}
.mint-apple-preview{--tp-bg:#174a3e;--tp-rail:#091713;--tp-sidebar:#123c32;--tp-main:#1f6653;--tp-line:#55aa92;--tp-text:#e9fff7;--tp-accent:#75f3c9}
.crimson-moon-preview{--tp-bg:#4b1729;--tp-rail:#150810;--tp-sidebar:#381020;--tp-main:#641d35;--tp-line:#a5415e;--tp-text:#ffeaf0;--tp-accent:#ff6f91}
.liquid-glass-clear-preview{--tp-bg:linear-gradient(135deg,#6aa6db,#594c8f);--tp-rail:rgba(12,21,39,.62);--tp-sidebar:rgba(236,245,255,.28);--tp-main:rgba(241,248,255,.18);--tp-line:rgba(255,255,255,.55);--tp-text:#fff;--tp-accent:#a9d4ff}
.liquid-glass-tinted-preview{--tp-bg:linear-gradient(135deg,#496b9f,#213453);--tp-rail:rgba(13,24,43,.82);--tp-sidebar:rgba(61,85,124,.72);--tp-main:rgba(36,54,87,.78);--tp-line:rgba(184,211,255,.48);--tp-text:#f5f8ff;--tp-accent:#82b6ff}
.orbit-blue-preview{--tp-bg:#0b2d46;--tp-rail:#03101a;--tp-sidebar:#08243a;--tp-main:#0f3e5e;--tp-line:#23698d;--tp-text:#e2f5ff;--tp-accent:#1a88c3}
.nebula-preview{--tp-bg:#2a1748;--tp-rail:#0d0918;--tp-sidebar:#21103a;--tp-main:#46205b;--tp-line:#784198;--tp-text:#f7eaff;--tp-accent:#a453e8}
.promerium-preview{--tp-bg:#0b342b;--tp-rail:#03110e;--tp-sidebar:#08281f;--tp-main:#10503f;--tp-line:#238e70;--tp-text:#e7fff8;--tp-accent:#22dda7}
.solar-flare-preview{--tp-bg:#3b210d;--tp-rail:#0d0804;--tp-sidebar:#2e1809;--tp-main:#633311;--tp-line:#a65f27;--tp-text:#fff3dc;--tp-accent:#ffbe4a}

@media(max-width:620px){.theme-preview{height:96px!important}.theme-card{padding:10px}}


/* v2.51 — member alignment, opaque user bars, rounded composer, and locked permissions */
@media (min-width:1001px){
  .members{width:auto!important;min-width:0!important;max-width:none!important;justify-self:stretch;box-sizing:border-box}
  .userbar{background:var(--userbar-bg,color-mix(in srgb,var(--input) 82%,var(--panel)));border:1px solid color-mix(in srgb,var(--muted) 16%,transparent)}
}
.replying+.pending-attachment[hidden]+.typing+.composer,
.replying:has(*)~.composer{border-top-left-radius:12px!important;border-top-right-radius:12px!important}
.permission-row.permission-locked{opacity:.58;cursor:not-allowed}
.permission-row.permission-locked input,.permission-row.permission-locked strong,.permission-row.permission-locked small{cursor:not-allowed}
.permission-row.permission-locked small{display:block;color:var(--muted);font-size:11px;font-weight:400;margin-top:2px}

/* v1.56 final menu sizing, destructive-button geometry, and role-action color fixes. */
.danger-button:hover,
.danger-button:focus-visible {
  border-color: transparent !important;
}
.settings-list button.manage-member,
.settings-list button.manage-member:hover,
.settings-list button.manage-member:focus-visible {
  background: var(--accent) !important;
  color: #fff !important;
  border: 1px solid transparent !important;
  box-shadow: none !important;
}
.settings-list button.manage-member:hover,
.settings-list button.manage-member:focus-visible {
  filter: brightness(.94);
}
.context-menu {
  width: max-content !important;
  min-width: 220px !important;
  max-width: min(440px, calc(100vw - 16px)) !important;
  overflow-x: hidden !important;
}
.context-menu button {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
.context-menu button > .context-menu-label {
  min-width: 0 !important;
  flex: 1 1 auto !important;
}
.context-menu .context-menu-text {
  min-width: 0 !important;
  max-width: 360px !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}
.context-menu button > b {
  flex: 0 0 auto !important;
  margin-left: 12px;
}



/* v2.55 — application-like account spacing and theme-consistent settings surfaces. */
:root{
  --settings-card-bg:color-mix(in srgb,var(--panel) 92%,var(--bg));
  --settings-inner-bg:color-mix(in srgb,var(--input) 82%,var(--panel));
  --settings-border:color-mix(in srgb,var(--muted) 24%,transparent);
}
.user-settings-shell{background:var(--bg)}
.account-hero,.settings-card,.voice-settings-card,.profile-preview-card{
  color:var(--text);
  border-color:var(--settings-border);
}
.settings-card,.voice-settings-card,.profile-preview-card{border:1px solid var(--settings-border)}
.account-security-card{background:var(--settings-card-bg)}
.account-details,.profile-custom-status{background:var(--settings-inner-bg)}
.account-detail-row,.app-switch-row{border-color:var(--settings-border)}
.settings-page-head{display:block}
.settings-page-head>p{display:none}

@media(max-width:700px){
  .account-identity{margin-top:54px}
  .account-profile-row>.primary{margin-top:12px}
}

/* v2.56 — theme-consistent permission rows/server menu and semantic button colors. */
:root{
  --permission-row-bg:color-mix(in srgb,var(--input) 74%,var(--panel));
  --permission-row-hover:color-mix(in srgb,var(--hover) 84%,var(--panel));
  --overlay-menu-bg:color-mix(in srgb,var(--panel) 94%,var(--bg));
  --overlay-menu-border:color-mix(in srgb,var(--muted) 24%,transparent);
  --neutral-button-bg:color-mix(in srgb,var(--input) 82%,var(--panel));
  --neutral-button-hover:color-mix(in srgb,var(--hover) 88%,var(--panel));
  --neutral-button-border:color-mix(in srgb,var(--muted) 22%,transparent);
}
.permission-row{
  box-sizing:border-box;
  background:var(--permission-row-bg)!important;
  color:var(--text)!important;
  border:1px solid var(--settings-border,var(--neutral-button-border))!important;
  text-transform:none!important;
  transition:background-color .14s ease,border-color .14s ease,opacity .14s ease;
}
.permission-row:not(.permission-locked):hover{
  background:var(--permission-row-hover)!important;
  border-color:color-mix(in srgb,var(--accent) 38%,var(--settings-border,var(--neutral-button-border)))!important;
}
.permission-row strong{color:var(--strong)!important;text-transform:none}
.permission-row small{color:var(--muted)!important;text-transform:none}
.permission-row input{accent-color:var(--accent)}

.server-menu-popover,
.server-menu-popover[popover]{
  background:var(--overlay-menu-bg)!important;
  color:var(--text)!important;
  border-color:var(--overlay-menu-border)!important;
  box-shadow:0 14px 36px color-mix(in srgb,#000 54%,transparent)!important;
}
.server-menu-popover button:not(.danger):not(.danger-button):not(.danger-text){
  background:transparent!important;
  color:var(--text)!important;
}
.server-menu-popover button:not(.danger):not(.danger-button):not(.danger-text):is(:hover,:focus-visible){
  background:var(--accent)!important;
  color:#fff!important;
}
.server-menu-popover .context-separator{
  background:color-mix(in srgb,var(--muted) 24%,transparent)!important;
}

/* Buttons are neutral by default. Only explicitly destructive classes are red. */
.settings-list button:not(.primary):not(.secondary):not(.danger):not(.danger-button):not(.danger-text):not(.icon-btn):not(.link),
.manager-window button:not(.primary):not(.secondary):not(.danger):not(.danger-button):not(.danger-text):not(.icon-btn):not(.link),
.settings-card button:not(.primary):not(.secondary):not(.danger):not(.danger-button):not(.danger-text):not(.icon-btn):not(.link){
  background:var(--neutral-button-bg)!important;
  color:var(--text)!important;
  border:1px solid var(--neutral-button-border)!important;
  box-shadow:none!important;
}
.settings-list button:not(.primary):not(.secondary):not(.danger):not(.danger-button):not(.danger-text):not(.icon-btn):not(.link):is(:hover,:focus-visible),
.manager-window button:not(.primary):not(.secondary):not(.danger):not(.danger-button):not(.danger-text):not(.icon-btn):not(.link):is(:hover,:focus-visible),
.settings-card button:not(.primary):not(.secondary):not(.danger):not(.danger-button):not(.danger-text):not(.icon-btn):not(.link):is(:hover,:focus-visible){
  background:var(--neutral-button-hover)!important;
  color:var(--strong)!important;
  border-color:color-mix(in srgb,var(--accent) 30%,var(--neutral-button-border))!important;
}
.settings-list button.primary,.manager-window button.primary,.settings-card button.primary{
  background:var(--accent)!important;
  color:#fff!important;
  border:1px solid transparent!important;
}
.settings-list button.secondary,.manager-window button.secondary,.settings-card button.secondary{
  background:var(--neutral-button-bg)!important;
  color:var(--text)!important;
  border:1px solid var(--neutral-button-border)!important;
}
button:is(.danger,.danger-button,.danger-text){
}

:root[data-theme="light"]{
  --permission-row-bg:#f2f3f5;
  --permission-row-hover:#e3e5e8;
  --overlay-menu-bg:#fff;
  --overlay-menu-border:#c7c9cd;
  --neutral-button-bg:#e3e5e8;
  --neutral-button-hover:#d4d7dc;
  --neutral-button-border:#c7c9cd;
}

/* Manage Roles is an administrative navigation action, not a destructive action. */
.settings-list button.manage-member,
.settings-list button.manage-member:is(:hover,:focus-visible){
  background:var(--accent)!important;
  color:#fff!important;
  border:1px solid transparent!important;
}
.settings-list button.manage-member:is(:hover,:focus-visible){filter:brightness(.94)}

/* v1.27 server management, server profiles, scoped themes, and interaction guards */
body,body *{
  -webkit-user-select:none;
  user-select:none;
}
input,textarea,[contenteditable="true"],.message .content,.message .content *{
  -webkit-user-select:text;
  user-select:text;
}
img{
  -webkit-user-select:none;
  user-select:none;
  -webkit-user-drag:none;
  user-drag:none;
}
.message img{
  -webkit-user-select:auto;
  user-select:auto;
  -webkit-user-drag:auto;
  user-drag:auto;
}

/* Server themes are scoped to the active server workspace. Leaving the server removes the data attributes and restores the user's global app theme. */
.shell[data-server-theme]{
  --accent:var(--server-accent,#5865f2);
  --server-theme-main:color-mix(in srgb,var(--bg) 94%,var(--server-accent,#5865f2) 6%);
  --server-theme-side:color-mix(in srgb,var(--panel) 92%,var(--server-accent,#5865f2) 8%);
  --server-theme-top:color-mix(in srgb,var(--top) 91%,var(--server-accent,#5865f2) 9%);
  --server-theme-hover:color-mix(in srgb,var(--hover) 82%,var(--server-accent,#5865f2) 18%);
  --server-theme-active:color-mix(in srgb,var(--server-accent,#5865f2) 24%,var(--panel));
  --server-theme-glow:color-mix(in srgb,var(--server-accent,#5865f2) 24%,transparent);
  --server-theme-border:color-mix(in srgb,var(--server-accent,#5865f2) 26%,transparent);
}
.shell[data-server-theme="default"]{--server-theme-main:var(--bg);--server-theme-side:var(--panel);--server-theme-top:var(--top);--server-theme-hover:var(--hover);--server-theme-glow:transparent}
.shell[data-server-theme="blurple"]{--server-theme-main:color-mix(in srgb,var(--bg) 88%,#5865f2 12%);--server-theme-side:color-mix(in srgb,var(--panel) 82%,#5865f2 18%);--server-theme-top:color-mix(in srgb,var(--top) 80%,#5865f2 20%);--server-theme-glow:rgba(88,101,242,.28)}
.shell[data-server-theme="midnight"]{--server-theme-main:color-mix(in srgb,var(--bg) 66%,#07101f 34%);--server-theme-side:color-mix(in srgb,var(--panel) 58%,#060b18 42%);--server-theme-top:color-mix(in srgb,var(--top) 54%,#0b1430 46%);--server-theme-glow:rgba(61,89,189,.25)}
.shell[data-server-theme="ocean"]{--server-theme-main:color-mix(in srgb,var(--bg) 80%,#00689f 20%);--server-theme-side:color-mix(in srgb,var(--panel) 72%,#00527e 28%);--server-theme-top:color-mix(in srgb,var(--top) 70%,#087ea4 30%);--server-theme-glow:rgba(0,174,239,.25)}
.shell[data-server-theme="forest"]{--server-theme-main:color-mix(in srgb,var(--bg) 82%,#176b43 18%);--server-theme-side:color-mix(in srgb,var(--panel) 72%,#15573a 28%);--server-theme-top:color-mix(in srgb,var(--top) 72%,#2c7650 28%);--server-theme-glow:rgba(62,177,111,.22)}
.shell[data-server-theme="sunset"]{--server-theme-main:color-mix(in srgb,var(--bg) 80%,#a9445e 20%);--server-theme-side:color-mix(in srgb,var(--panel) 70%,#77394f 30%);--server-theme-top:color-mix(in srgb,var(--top) 67%,#c75f50 33%);--server-theme-glow:rgba(255,139,79,.24)}
.shell[data-server-theme="rose"]{--server-theme-main:color-mix(in srgb,var(--bg) 82%,#a83f7d 18%);--server-theme-side:color-mix(in srgb,var(--panel) 72%,#7f315f 28%);--server-theme-top:color-mix(in srgb,var(--top) 70%,#b34b87 30%);--server-theme-glow:rgba(233,95,171,.23)}
.shell[data-server-theme] .main{
  background-color:var(--bg);
  background-image:radial-gradient(circle at 88% -10%,var(--server-theme-glow) 0,transparent 43%),linear-gradient(145deg,var(--server-theme-main),var(--bg) 72%);
  background-repeat:no-repeat;
  background-size:100% 100%;
}
/* The server banner is rendered only by .sidebar-server-banner. Keeping it out of
   the workspace background prevents transparent user themes from exposing it in
   the message feed or composer region. */
.shell[data-server-theme] :is(.messages,.message-feed){background-image:none}
.shell[data-server-theme] .sidebar,
.shell[data-server-theme] .members{background:var(--server-theme-side)}
.shell[data-server-theme] .header,
.shell[data-server-theme] .sidebar-title{background:var(--server-theme-top);box-shadow:0 1px var(--server-theme-border)}
.shell[data-server-theme] .sidebar-resizer{background:color-mix(in srgb,var(--server-theme-side) 78%,var(--server-accent,#5865f2) 22%)}
.shell[data-server-theme] .channel:hover,
.shell[data-server-theme] .member:hover{background:var(--server-theme-hover)}
.shell[data-server-theme] .channel.active{
  color:var(--strong);
  background:linear-gradient(90deg,var(--server-theme-active),color-mix(in srgb,var(--server-theme-active) 42%,transparent));
  box-shadow:inset 3px 0 var(--server-accent,#5865f2);
}
.shell[data-server-theme] .category{color:color-mix(in srgb,var(--muted) 78%,var(--server-accent,#5865f2) 22%)}
.shell[data-server-theme] .message:hover{background:color-mix(in srgb,var(--server-theme-hover) 64%,transparent)}
.shell[data-server-theme] .server-btn.active{background:var(--server-accent,#5865f2);box-shadow:0 0 0 3px color-mix(in srgb,var(--server-accent,#5865f2) 24%,transparent)}

.server-overview-assets{position:relative;margin:0 0 24px;min-height:220px;border:1px solid var(--settings-border,var(--neutral-button-border));border-radius:12px;background:var(--settings-card-bg,var(--panel));overflow:hidden}
.server-banner-preview{height:126px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 78%,#14151a),color-mix(in srgb,var(--accent) 28%,var(--panel)));background-size:cover;background-position:center;display:grid;place-items:center;color:#fff;font-weight:800;text-shadow:0 1px 3px #0008}
.server-icon-preview{position:absolute;left:20px;top:90px;width:74px;height:74px;border-radius:22px;border:6px solid var(--settings-card-bg,var(--panel));background:var(--accent);display:grid;place-items:center;color:#fff;font-size:22px;font-weight:900;overflow:hidden}
.server-icon-preview img{width:100%;height:100%;object-fit:cover}
.server-theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:8px 0 18px}
.server-theme-card{min-width:0;border:1px solid var(--settings-border,var(--neutral-button-border));background:var(--settings-card-bg,var(--panel));color:var(--text);border-radius:10px;padding:9px;display:grid;gap:9px;text-align:left;cursor:pointer;transition:border-color .16s,box-shadow .16s,transform .16s}
.server-theme-card:hover{border-color:color-mix(in srgb,var(--accent) 58%,var(--settings-border,var(--neutral-button-border)));transform:translateY(-1px)}
.server-theme-card.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 24%,transparent)}
.server-theme-card-copy{display:grid;gap:2px;min-width:0}
.server-theme-card-copy strong{color:var(--strong);font-size:13px}
.server-theme-card-copy small{color:var(--muted);font-size:11px;line-height:1.3;white-space:normal}
.server-theme-swatch{--preview-bg:#313338;--preview-rail:#1e1f22;--preview-side:#2b2d31;--preview-top:#2b2d31;--preview-accent:#5865f2;display:grid;grid-template-columns:18px 34px minmax(0,1fr);height:76px;border-radius:7px;background:var(--preview-bg);overflow:hidden;box-shadow:inset 0 0 0 1px #0003}
.server-theme-preview-rail,.server-theme-preview-sidebar,.server-theme-preview-chat{display:flex;flex-direction:column;gap:5px;padding:6px 4px;font-style:normal;min-width:0}
.server-theme-preview-rail{align-items:center;background:var(--preview-rail)}
.server-theme-preview-rail b{display:block;width:10px;height:10px;border-radius:50%;background:color-mix(in srgb,var(--preview-side) 78%,#fff 22%)}
.server-theme-preview-rail b:first-child{border-radius:4px;background:var(--preview-accent)}
.server-theme-preview-sidebar{background:var(--preview-side);padding-left:5px;padding-right:5px}
.server-theme-preview-sidebar b{display:block;height:5px;border-radius:3px;background:color-mix(in srgb,var(--preview-side) 72%,#fff 28%)}
.server-theme-preview-sidebar b:nth-child(2){background:color-mix(in srgb,var(--preview-accent) 30%,var(--preview-side));box-shadow:inset 2px 0 var(--preview-accent)}
.server-theme-preview-chat{position:relative;background:linear-gradient(145deg,color-mix(in srgb,var(--preview-bg) 88%,var(--preview-accent) 12%),var(--preview-bg));padding:20px 7px 7px}
.server-theme-preview-chat>b{position:absolute;left:0;right:0;top:0;height:14px;background:var(--preview-top);border-bottom:1px solid color-mix(in srgb,var(--preview-accent) 20%,transparent)}
.server-theme-preview-chat span{display:block;height:6px;border-radius:4px;background:color-mix(in srgb,var(--preview-bg) 70%,#fff 30%)}
.server-theme-preview-chat span:nth-of-type(2){width:72%}
.server-theme-preview-chat strong{display:block;height:9px;margin-top:auto;border-radius:4px;background:color-mix(in srgb,var(--preview-bg) 76%,var(--preview-accent) 24%)}
.server-theme-swatch.theme-default{--preview-bg:var(--bg);--preview-rail:var(--rail);--preview-side:var(--panel);--preview-top:var(--top);--preview-accent:var(--accent)}
.server-theme-swatch.theme-blurple{--preview-bg:#292c48;--preview-rail:#191a2a;--preview-side:#24263d;--preview-top:#30345c;--preview-accent:#5865f2}
.server-theme-swatch.theme-midnight{--preview-bg:#080d19;--preview-rail:#030611;--preview-side:#0b1222;--preview-top:#101a34;--preview-accent:#667eea}
.server-theme-swatch.theme-ocean{--preview-bg:#06283a;--preview-rail:#031923;--preview-side:#07364d;--preview-top:#0a5673;--preview-accent:#00aee8}
.server-theme-swatch.theme-forest{--preview-bg:#102b20;--preview-rail:#081a12;--preview-side:#153a29;--preview-top:#245b40;--preview-accent:#3eb16f}
.server-theme-swatch.theme-sunset{--preview-bg:#3c2032;--preview-rail:#24121e;--preview-side:#4d2b40;--preview-top:#7d3f4c;--preview-accent:#ff8b4f}
.server-theme-swatch.theme-rose{--preview-bg:#361b31;--preview-rail:#21101e;--preview-side:#47233e;--preview-top:#6f315b;--preview-accent:#e95fab}
.server-accent{width:68px;height:42px;padding:3px;border:1px solid var(--settings-border,var(--neutral-button-border));border-radius:6px;background:var(--settings-inner-bg,var(--input))}

.audit-log,.ban-list{display:grid;gap:8px;margin-top:14px}
.audit-entry,.ban-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--settings-border,var(--neutral-button-border));border-radius:8px;background:var(--settings-card-bg,var(--panel))}
.audit-entry>div,.ban-row>div{min-width:0;display:grid;gap:3px}
.audit-entry span,.audit-entry small,.audit-entry time,.ban-row small{color:var(--muted)}
.audit-entry time{font-size:11px}
.audit-entry .avatar,.ban-row .avatar{width:38px;height:38px}
.loading-state{color:var(--muted);padding:18px;text-align:center}

.system-welcome-message{grid-template-columns:44px minmax(0,1fr);padding-top:12px;padding-bottom:12px}
.system-welcome-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 20%,var(--panel));font-size:19px}
.system-welcome-message .content{font-weight:700;color:var(--strong)}

.server-profile-layout{display:grid;grid-template-columns:minmax(260px,1fr) minmax(240px,1fr);gap:22px;align-items:start}
.server-profile-preview{position:relative;border:1px solid var(--settings-border,var(--neutral-button-border));border-radius:10px;background:var(--settings-card-bg,var(--panel));overflow:hidden;min-height:260px}
.server-profile-preview-banner{height:112px;background-image:var(--profile-banner,linear-gradient(transparent,transparent)),linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 42%,var(--panel)));background-size:cover;background-position:center}
.server-profile-preview-avatar{position:absolute;left:18px;top:76px;border:6px solid var(--settings-card-bg,var(--panel));border-radius:50%}
.server-profile-preview-avatar .avatar.large{width:74px;height:74px;margin:0}
.server-profile-preview-body{padding:54px 18px 18px;display:grid;gap:7px}
.server-profile-preview-body strong{font-size:20px;color:var(--strong)}
.server-profile-preview-body span{color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}
.server-profile-upload-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.server-profile-fields textarea{resize:vertical}

@media(max-width:760px){
  .server-profile-layout{grid-template-columns:1fr}
  .server-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .audit-entry,.ban-row{grid-template-columns:auto minmax(0,1fr)}
  .ban-row>button{grid-column:1/-1;width:100%}
}
.server-menu-description{max-width:min(360px,calc(100vw - 32px));padding:9px 10px 10px;color:var(--muted);font-size:12px;line-height:1.35;white-space:normal;overflow-wrap:anywhere;border-bottom:1px solid color-mix(in srgb,var(--muted) 22%,transparent);margin-bottom:4px}

.server-btn .server-rail-icon{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit;pointer-events:none}

/* v2.74 — per-account Discord-style server rail ordering. */
.server-list{position:relative}
.server-list>.server-btn{will-change:transform;touch-action:manipulation}
.server-list.server-rail-sorting{user-select:none;-webkit-user-select:none}
.server-list.server-rail-sorting>.server-btn{transition:transform .12s ease,border-radius .12s ease,opacity .12s ease,box-shadow .12s ease}
.server-list>.server-btn.server-rail-dragging{
  z-index:4;
  opacity:.56;
  border-radius:16px;
  outline:2px solid color-mix(in srgb,var(--accent) 82%,#fff);
  outline-offset:2px;
  box-shadow:0 10px 28px rgb(0 0 0 / .48);
  cursor:grabbing;
}
.server-list.server-rail-saving>.server-btn{cursor:progress}
.server-rail-drag-active,.server-rail-drag-active *{cursor:grabbing!important}
.server-rail-drag-active .rail{overscroll-behavior:none}
@media(prefers-reduced-motion:reduce){
  .server-list.server-rail-sorting>.server-btn{transition:none}
}

/* v2.18 — application-style settings save bar and server theme controls */
.shell[data-server-theme] .sidebar-resizer{background:transparent!important}
.shell[data-server-theme] .sidebar-resizer::before{background:transparent}
.shell[data-server-theme] .sidebar-resizer:hover::before,
.shell[data-server-theme] .sidebar-resizer:focus-visible::before,
.resizing-sidebar .sidebar-resizer::before{background:color-mix(in srgb,var(--server-accent,var(--accent)) 78%,transparent)}

.server-accent-setting{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:8px 0 18px;
  padding:14px 16px;
  border:1px solid var(--settings-border,var(--neutral-button-border));
  border-radius:10px;
  background:var(--settings-card-bg,var(--panel));
}
.server-accent-setting>span{display:grid;gap:4px;min-width:0}
.server-accent-setting strong{color:var(--strong)}
.server-accent-setting small{color:var(--muted);font-weight:400;line-height:1.35}
.server-accent-setting .server-accent{flex:0 0 68px;margin:0!important;align-self:center}

.settings-unsaved-bar{
  position:sticky;
  z-index:20;
  left:0;
  right:0;
  bottom:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  width:min(100%,720px);
  min-height:52px;
  margin:28px auto 0;
  padding:10px 12px 10px 16px;
  border:1px solid color-mix(in srgb,var(--strong) 14%,transparent);
  border-radius:8px;
  background:color-mix(in srgb,var(--strong) 92%,var(--panel));
  color:var(--bg);
  box-shadow:0 10px 30px rgba(0,0,0,.34);
}
.settings-unsaved-bar[hidden]{display:none!important}
.settings-unsaved-bar>strong{font-size:14px;line-height:1.3;color:inherit}
.settings-unsaved-bar>div{display:flex;align-items:center;gap:8px;flex:none}
.settings-unsaved-bar .settings-reset-button{
  min-height:34px;
  padding:6px 10px;
  border:0;
  border-radius:4px;
  background:transparent;
  color:inherit;
  text-decoration:underline;
  cursor:pointer;
}
.settings-unsaved-bar .settings-reset-button:hover{background:color-mix(in srgb,currentColor 10%,transparent)}
.settings-unsaved-bar .settings-save-button{min-width:96px;min-height:34px;margin:0!important}
.settings-unsaved-bar :is(button:disabled){opacity:.58;cursor:wait}
.role-editor>.settings-unsaved-bar{bottom:12px;margin-top:24px}
.role-editor-actions{position:static!important;bottom:auto!important;margin:24px 0 0!important;padding:0!important;background:transparent!important;border:0!important}
.server-profile-fields>.settings-unsaved-bar,.channel-access-manager>.settings-unsaved-bar,.modal>.settings-unsaved-bar{bottom:8px}

:root[data-theme="light"] .settings-unsaved-bar{
  background:#111214;
  color:#f2f3f5;
  border-color:#0002;
}
@media(max-width:700px){
  .server-accent-setting{align-items:flex-start}
  .settings-unsaved-bar{bottom:8px;gap:10px;align-items:flex-start;flex-direction:column;padding:12px;width:100%}
  .settings-unsaved-bar>div{width:100%;justify-content:flex-end}
}

/* v2.19 — live server theme preview, themed save bar, sidebar banner and status-action polish */
.sidebar-server-banner{
  position:relative;
  flex:0 0 112px;
  min-height:112px;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  box-shadow:inset 0 -1px var(--server-theme-border,transparent);
  overflow:hidden;
}
.sidebar-server-banner::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 40%,color-mix(in srgb,var(--server-theme-side,var(--panel)) 18%,transparent) 68%,var(--server-theme-side,var(--panel)) 100%);
}
.sidebar-server-banner[hidden]{display:none!important}

.server-theme-live-demo{
  --preview-bg:#313338;
  --preview-rail:#1e1f22;
  --preview-side:#2b2d31;
  --preview-top:#2b2d31;
  --preview-accent:var(--accent);
  display:grid;
  gap:8px;
  margin:8px 0 14px;
  padding:10px;
  border:1px solid color-mix(in srgb,var(--preview-accent) 38%,var(--settings-border,var(--neutral-button-border)));
  border-radius:10px;
  background:color-mix(in srgb,var(--settings-card-bg,var(--panel)) 92%,var(--preview-accent) 8%);
  box-shadow:0 10px 26px color-mix(in srgb,var(--preview-accent) 10%,transparent);
}
.server-theme-live-demo>span{
  color:var(--strong);
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
}
.server-theme-live-demo-layout{
  display:grid;
  grid-template-columns:36px 92px minmax(0,1fr);
  min-height:130px;
  border-radius:8px;
  overflow:hidden;
  background:var(--preview-bg);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--preview-accent) 18%,transparent);
}
.server-theme-live-demo-layout .server-theme-preview-rail,
.server-theme-live-demo-layout .server-theme-preview-sidebar,
.server-theme-live-demo-layout .server-theme-preview-chat{padding:12px 8px;gap:9px}
.server-theme-live-demo-layout .server-theme-preview-rail b{width:20px;height:20px}
.server-theme-live-demo-layout .server-theme-preview-sidebar b{height:8px}
.server-theme-live-demo-layout .server-theme-preview-chat{padding:36px 16px 14px}
.server-theme-live-demo-layout .server-theme-preview-chat>b{height:26px}
.server-theme-live-demo-layout .server-theme-preview-chat span{height:9px}
.server-theme-live-demo-layout .server-theme-preview-chat strong{height:16px}
.server-theme-live-demo.theme-default{--preview-bg:var(--bg);--preview-rail:var(--rail);--preview-side:var(--panel);--preview-top:var(--top)}
.server-theme-live-demo.theme-blurple{--preview-bg:#292c48;--preview-rail:#191a2a;--preview-side:#24263d;--preview-top:#30345c}
.server-theme-live-demo.theme-midnight{--preview-bg:#080d19;--preview-rail:#030611;--preview-side:#0b1222;--preview-top:#101a34}
.server-theme-live-demo.theme-ocean{--preview-bg:#06283a;--preview-rail:#031923;--preview-side:#07364d;--preview-top:#0a5673}
.server-theme-live-demo.theme-forest{--preview-bg:#102b20;--preview-rail:#081a12;--preview-side:#153a29;--preview-top:#245b40}
.server-theme-live-demo.theme-sunset{--preview-bg:#3c2032;--preview-rail:#24121e;--preview-side:#4d2b40;--preview-top:#7d3f4c}
.server-theme-live-demo.theme-rose{--preview-bg:#361b31;--preview-rail:#21101e;--preview-side:#47233e;--preview-top:#6f315b}

.settings-unsaved-bar,
:root[data-theme="light"] .settings-unsaved-bar{
  border-color:color-mix(in srgb,var(--settings-save-accent,var(--accent)) 34%,var(--settings-border,var(--neutral-button-border)));
  background:color-mix(in srgb,var(--settings-card-bg,var(--panel)) 90%,var(--settings-save-accent,var(--accent)) 10%);
  color:var(--strong);
  box-shadow:0 12px 34px color-mix(in srgb,var(--settings-save-accent,var(--accent)) 16%,rgba(0,0,0,.34));
  -webkit-backdrop-filter:blur(18px) saturate(1.15);
  backdrop-filter:blur(18px) saturate(1.15);
}
.settings-unsaved-bar .settings-reset-button{color:var(--text)}
.settings-unsaved-bar .settings-save-button{
  background:var(--settings-save-accent,var(--accent));
  color:#fff;
  border:1px solid transparent;
}
.settings-unsaved-bar .settings-save-button:hover{filter:brightness(.94)}

.audit-entry .status-dot{display:none!important}
button.primary.save-custom{
  width:36px;
  min-width:36px;
  height:36px;
  min-height:36px;
  padding:0!important;
  display:grid;
  place-items:center;
  border-radius:6px;
}
button.primary.save-custom .app-icon{width:18px;height:18px}

@media(max-width:700px){
  .sidebar-server-banner{flex-basis:96px;min-height:96px}
  .server-theme-live-demo-layout{grid-template-columns:28px 72px minmax(0,1fr);min-height:112px}
}


/* v2.20 — server asset removal, app-accent inheritance and application-like controls/icons */
.server-theme-default-selected .server-accent-setting{opacity:.78}
.server-theme-default-selected .server-accent{cursor:not-allowed;filter:saturate(.72)}

button:is(.primary,.secondary,.danger-button,.action-button){
  appearance:none;
  -webkit-appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:var(--app-button-height);
  height:auto;
  padding:8px 14px;
  border-radius:var(--app-button-radius);
  font-weight:var(--app-button-font-weight);
  line-height:18px;
  box-shadow:none;
  cursor:pointer;
  transition:background-color .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease,transform .08s ease,filter .14s ease;
}
button:is(.primary,.secondary,.danger-button,.action-button):active:not(:disabled){transform:translateY(1px)}
button:is(.primary,.secondary,.danger-button,.action-button):focus-visible{outline:2px solid var(--app-button-focus);outline-offset:2px}
button:is(.primary,.secondary,.danger-button,.action-button)>.app-icon{width:17px;height:17px;flex:none;stroke-width:2}
button:disabled,button[aria-disabled="true"]{opacity:.55;cursor:not-allowed!important;transform:none!important}
button.primary{background:var(--app-button-primary-bg);border:1px solid transparent;color:var(--app-button-primary-text)!important;-webkit-text-fill-color:var(--app-button-primary-text)!important}
button.primary:hover:not(:disabled),button.primary:focus-visible:not(:disabled){background:var(--app-button-primary-hover);filter:none}
button.secondary,button.action-button:not(.primary):not(.danger-button){background:var(--app-button-secondary-bg);border:1px solid var(--app-button-secondary-border);color:var(--app-button-secondary-text);-webkit-text-fill-color:var(--app-button-secondary-text)}
button.secondary:hover:not(:disabled),button.secondary:focus-visible:not(:disabled),button.action-button:not(.primary):not(.danger-button):hover:not(:disabled),button.action-button:not(.primary):not(.danger-button):focus-visible:not(:disabled){background:var(--app-button-secondary-hover);border-color:color-mix(in srgb,var(--accent) 28%,var(--app-button-secondary-border));color:var(--strong);-webkit-text-fill-color:var(--strong)}
button.danger-button:hover:not(:disabled){filter:none}
.icon-btn{display:inline-grid;place-items:center;min-width:32px;min-height:32px;border-radius:4px;transition:background-color .14s ease,color .14s ease,transform .08s ease}
.icon-btn:active:not(:disabled){transform:translateY(1px)}
.icon-btn:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 75%,#fff);outline-offset:2px}
.icon-btn .app-icon{width:20px;height:20px}

.settings-nav button{display:flex;align-items:center;gap:10px}
.settings-nav button>.app-icon{width:18px;height:18px;flex:none;color:var(--muted)}
.settings-nav button.active>.app-icon,.settings-nav button:hover>.app-icon{color:currentColor}
.server-menu-popover button{display:flex;align-items:center;justify-content:space-between;gap:16px}
.server-menu-popover button>.app-icon{width:18px;height:18px;flex:none;color:var(--muted)}
.server-menu-popover button:hover>.app-icon,.server-menu-popover button:focus-visible>.app-icon{color:currentColor}
.server-menu-popover button.danger-text>.app-icon{color:var(--danger)}

/* The settings cards remain the only theme selector preview; the removed live-demo element is intentionally not rendered. */

.context-menu-action-icon{display:grid!important;place-items:center!important;width:20px!important;height:20px!important;color:var(--muted);font-size:0}
.context-menu-action-icon .app-icon{width:18px;height:18px}
.context-menu button:hover .context-menu-action-icon,.context-menu button:focus-visible .context-menu-action-icon{color:currentColor}
.msg-actions button{display:grid;place-items:center;min-width:32px;min-height:32px;color:var(--muted)}
.msg-actions button:hover{color:var(--strong);background:var(--hover)}
.msg-actions .app-icon{width:18px;height:18px}
.lightbox-action{display:inline-flex;align-items:center;gap:7px}.lightbox-action .app-icon{width:18px;height:18px}
.tiny-add .app-icon{width:16px;height:16px}

/* Owner-granted advanced presence and typing controls */
.advanced-user-settings{display:grid;gap:14px}
.app-experience-settings{display:grid;gap:18px;overflow:hidden;padding:0!important}
.app-experience-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:20px 20px 17px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 11%,var(--panel)) 0,var(--panel) 58%)}
.app-experience-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:color-mix(in srgb,var(--accent) 17%,var(--panel-2,var(--panel)));color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));box-shadow:0 8px 24px color-mix(in srgb,#000 16%,transparent)}
.app-experience-mark .app-icon{width:22px;height:22px}
.app-experience-title{min-width:0;display:grid;gap:4px}.app-experience-title h3{margin:0;font-size:17px}.app-experience-title p{margin:0;color:var(--muted);line-height:1.45;font-size:13px;max-width:760px}.settings-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:800;color:var(--accent)}
.app-experience-mode{align-self:start;display:inline-flex;align-items:center;min-height:25px;padding:4px 9px;border:1px solid var(--border);border-radius:999px;background:var(--panel-2,var(--input));color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}.app-experience-mode[data-tone="success"]{background:color-mix(in srgb,#23a55a 14%,var(--panel));border-color:color-mix(in srgb,#23a55a 35%,var(--border));color:color-mix(in srgb,#23a55a 80%,var(--strong))}
.app-experience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 20px}
.app-experience-card{min-width:0;display:grid;grid-template-rows:auto auto auto 1fr auto;align-content:start;gap:12px;padding:16px;border:1px solid var(--border);border-radius:13px;background:var(--panel-2,var(--panel));transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.app-experience-card[data-tone="success"]{border-color:color-mix(in srgb,#23a55a 34%,var(--border));background:color-mix(in srgb,#23a55a 5%,var(--panel-2,var(--panel)))}.app-experience-card[data-tone="ready"]{border-color:color-mix(in srgb,var(--accent) 34%,var(--border))}.app-experience-card[data-tone="danger"]{border-color:color-mix(in srgb,var(--danger) 42%,var(--border));background:color-mix(in srgb,var(--danger) 4%,var(--panel-2,var(--panel)))}.app-experience-card[data-tone="warning"]{border-color:color-mix(in srgb,#f0b232 42%,var(--border))}
.app-experience-card-head{display:flex;align-items:flex-start;gap:11px;min-width:0}.app-experience-card-head>div{min-width:0;display:grid;gap:4px}.app-experience-card-head strong{font-size:14px;color:var(--strong)}.app-experience-card-head small{color:var(--muted);line-height:1.4;font-size:12px}
.app-experience-card-icon{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--accent) 12%,var(--input));color:var(--accent)}.app-experience-card-icon .app-icon{width:18px;height:18px}
.app-experience-status{min-height:40px;padding:10px 11px;border-radius:9px;background:color-mix(in srgb,var(--input) 82%,transparent);color:var(--text);font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.app-experience-runtime{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;line-height:1.35}.app-experience-dot{width:7px;height:7px;border-radius:50%;background:var(--muted);box-shadow:0 0 0 3px color-mix(in srgb,var(--muted) 12%,transparent)}.pwa-runtime-status[data-tone="success"]~*{}.app-experience-runtime:has(.pwa-runtime-status[data-tone="success"]) .app-experience-dot{background:#23a55a;box-shadow:0 0 0 3px color-mix(in srgb,#23a55a 14%,transparent)}.app-experience-runtime:has(.pwa-runtime-status[data-tone="danger"]) .app-experience-dot{background:var(--danger)}.app-experience-runtime:has(.pwa-runtime-status[data-tone="progress"]) .app-experience-dot{background:var(--accent)}
.app-experience-card>button{justify-self:start;min-width:112px}.app-experience-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.app-experience-actions>button{min-width:112px}.app-experience-health{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:7px}.app-experience-health-item{min-width:0;display:grid;gap:3px;padding:8px;border:1px solid var(--border);border-radius:9px;background:color-mix(in srgb,var(--input) 68%,transparent)}.app-experience-health-item small{color:var(--muted);font-size:10px}.app-experience-health-item strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--text)}.app-experience-health-item[data-tone="success"] strong{color:#23a55a}.app-experience-health-item[data-tone="danger"] strong{color:var(--danger)}.app-experience-health-item[data-tone="warning"] strong{color:#f0b232}
.app-experience-note{display:flex;align-items:flex-start;gap:9px;margin:0 20px 20px;padding:11px 12px;border-radius:10px;background:color-mix(in srgb,var(--input) 62%,transparent);color:var(--muted);font-size:11px;line-height:1.45}.app-experience-note .app-icon{flex:none;width:16px;height:16px;margin-top:1px;color:var(--accent)}
@media(max-width:760px){.app-experience-grid{grid-template-columns:1fr}.app-experience-head{grid-template-columns:auto minmax(0,1fr)}.app-experience-mode{grid-column:2;justify-self:start}.app-experience-health{grid-template-columns:repeat(auto-fit,minmax(86px,1fr))}.app-experience-card>button{width:100%;justify-self:stretch}.app-experience-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.app-experience-actions>button{width:100%}}
@media(max-width:520px){.app-experience-head{padding:16px;gap:11px}.app-experience-mark{width:38px;height:38px;border-radius:12px}.app-experience-grid{padding:0 12px}.app-experience-card{padding:13px}.app-experience-note{margin:0 12px 14px}.app-experience-health{grid-template-columns:1fr}.app-experience-mode{grid-column:1/-1;margin-left:49px}}
.admin-user-features{gap:14px}
.admin-user-feature-list{display:grid;gap:10px;max-height:min(52vh,620px);overflow:auto;padding-right:4px}
.admin-user-feature-row{display:grid;grid-template-columns:auto minmax(140px,.9fr) repeat(3,minmax(180px,1fr));align-items:center;gap:14px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2,var(--panel));transition:background .15s ease,border-color .15s ease}
.admin-user-feature-row:hover{background:var(--hover);border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}
.admin-user-feature-row>.avatar{width:40px;height:40px;min-width:40px}
.admin-user-feature-identity{min-width:0;display:grid;gap:3px}
.admin-user-feature-identity strong,.admin-user-feature-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-user-feature-identity small{color:var(--muted)}
.admin-feature-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:9px 10px;border-radius:9px;background:color-mix(in srgb,var(--input) 82%,transparent)}
.admin-feature-toggle>span{display:grid;gap:2px;min-width:0}
.admin-feature-toggle strong{font-size:13px}
.admin-feature-toggle small{font-size:11px;color:var(--muted);line-height:1.35}
.admin-feature-toggle input{flex:0 0 auto}
@media(max-width:1050px){.admin-user-feature-row{grid-template-columns:auto minmax(0,1fr)}.admin-feature-toggle{grid-column:1/-1}}
@media(max-width:700px){.admin-user-feature-row{gap:10px;padding:10px}.admin-feature-toggle{align-items:flex-start}.admin-user-feature-list{max-height:none}}

/* Secure account password management */
.account-security-card > div{min-width:0;flex:1}
.account-security-card .change-password{flex:none;white-space:nowrap}
.password-change-dialog{width:min(480px,100%)}
.password-change-head{display:flex;align-items:flex-start;gap:14px;margin:0 36px 20px 0}
.password-change-head>.app-icon{flex:0 0 30px;width:30px;height:30px;padding:6px;border-radius:10px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}
.password-change-head h2{margin:0 0 5px}
.password-change-head p{margin:0;color:var(--muted);line-height:1.45}
.password-change-form label{margin-top:16px}
.password-change-form label>small{display:block;margin-top:6px;color:var(--muted);font-weight:400;text-transform:none;line-height:1.35}
.password-change-error{margin-top:16px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--danger) 58%,transparent);border-radius:6px;background:color-mix(in srgb,var(--danger) 15%,var(--settings-card-bg,var(--panel)));color:color-mix(in srgb,var(--danger) 70%,var(--strong));font-size:13px;line-height:1.4}
.password-change-dialog .dialog-actions{margin-top:24px}
.password-change-dialog .submit-password-change{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.password-change-dialog .submit-password-change .app-icon{width:18px;height:18px}
@media(max-width:560px){
 .account-security-card{align-items:stretch;flex-direction:column}
 .account-security-card .change-password{width:100%}
 .password-change-dialog .dialog-actions{display:grid;grid-template-columns:1fr 1fr}
 .password-change-dialog .dialog-actions>button{width:100%}
}

/* Beta access administration */
.auth-beta-badge{display:flex;align-items:center;gap:10px;margin:0 0 20px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:8px;background:color-mix(in srgb,var(--accent) 14%,var(--panel));color:var(--strong)}
.auth-beta-badge .app-icon{width:20px;height:20px;color:var(--accent);flex:none}.auth-beta-badge span{min-width:0}.auth-beta-badge strong,.auth-beta-badge small{display:block}.auth-beta-badge small{margin-top:2px;color:var(--muted);line-height:1.35}
.admin-feature-toggle input:disabled{cursor:not-allowed;opacity:.72}

/* v2.27 — server-profile editor and member-banner reliability */
.modal.modal-server-profile{
  width:min(880px,calc(100vw - 32px));
  max-width:calc(100vw - 32px);
  max-height:min(760px,calc(100dvh - 32px));
  overflow:auto;
}
.server-profile-editor{
  min-width:0;
  padding-bottom:78px;
}
.server-profile-editor .settings-page-head{
  align-items:flex-start;
  margin-bottom:20px;
  padding-right:34px;
}
.server-profile-editor .settings-page-head p{
  margin:7px 0 0;
  color:var(--muted);
  line-height:1.4;
}
.server-profile-layout{
  grid-template-columns:minmax(300px,360px) minmax(280px,1fr);
  gap:24px;
  align-items:start;
}
.server-profile-assets,
.server-profile-fields{min-width:0}
.server-profile-preview{
  min-height:280px;
  box-shadow:0 8px 24px color-mix(in srgb,#000 22%,transparent);
}
.server-profile-preview-banner{
  height:120px;
  background-image:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 42%,var(--panel)));
  background-color:var(--settings-inner-bg,var(--input));
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.server-profile-preview-avatar{top:82px}
.server-profile-preview-body{padding-top:58px;min-height:150px}
.server-profile-preview-bio:empty::before{
  content:attr(data-empty-label);
  color:var(--muted);
}
.server-profile-upload-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin-top:12px;
}
.server-profile-upload-actions button{
  width:100%;
  justify-content:flex-start;
  min-height:40px;
}
.server-profile-fields{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  padding:16px;
  border:1px solid var(--settings-border,var(--neutral-button-border));
  border-radius:10px;
  background:var(--settings-card-bg,var(--panel));
}
.server-profile-fields label{
  margin:4px 0 0;
  color:var(--strong);
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
}
.server-profile-fields .field{width:100%;min-width:0}
.server-profile-fields textarea{min-height:132px;resize:vertical}
.server-profile-character-count{
  justify-self:end;
  color:var(--muted);
  font-size:11px;
}
.server-profile-editor>.settings-unsaved-bar{
  left:24px;
  right:24px;
  width:auto;
}
@media(max-width:760px){
  .modal.modal-server-profile{width:100vw;max-width:100vw;max-height:100dvh;border-radius:0}
  .server-profile-editor{padding-bottom:92px}
  .server-profile-layout{grid-template-columns:1fr;gap:18px}
  .server-profile-editor>.settings-unsaved-bar{left:12px;right:12px}
}


/* Profile settings polish: centered emoji glyph. */
.settings-status-emoji-trigger{display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important}
.settings-status-emoji-trigger .emoji-glyph{display:inline-flex;align-items:center;justify-content:center;width:1.15em;height:1.15em;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;transform:translateY(-.25px);pointer-events:none}

/* application-like server members, role assignment, invites and server asset controls. */
.server-members-settings{min-width:0}
.server-member-search,.member-role-search{position:relative;display:flex;align-items:center;margin:0 0 16px}
.server-member-search>.app-icon,.member-role-search>.app-icon{position:absolute;left:12px;width:17px;height:17px;color:var(--muted);pointer-events:none;z-index:1}
.server-member-search .field,.member-role-search .field{width:100%;padding-left:38px}
.server-member-settings-list{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--settings-border);border-bottom:1px solid var(--settings-border)}
.server-member-settings-row{display:grid;grid-template-columns:minmax(190px,1.35fr) minmax(140px,1fr) auto;align-items:center;gap:14px;padding:10px 8px;border-radius:6px;min-width:0}
.server-member-settings-row:hover{background:var(--hover)}
.server-member-settings-row[hidden]{display:none!important}
.server-member-settings-identity{display:flex;align-items:center;gap:12px;min-width:0}
.server-member-settings-identity>div{min-width:0}
.server-member-settings-identity strong,.server-member-settings-identity small{display:flex;align-items:center;gap:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.server-member-settings-identity small{color:var(--muted);margin-top:3px}
.server-member-role-pills{display:flex;align-items:center;gap:5px;min-width:0;overflow:hidden}
.server-member-role-pills>span{display:inline-flex;align-items:center;gap:5px;max-width:135px;padding:3px 7px;border:1px solid var(--settings-border);border-radius:4px;background:var(--input);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.server-member-role-pills>span i{width:8px;height:8px;border-radius:50%;background:var(--role-color,#99aab5);flex:none}
.server-member-role-pills>b{font-size:11px;color:var(--muted);white-space:nowrap}
.server-member-role-pills>small{color:var(--muted);white-space:nowrap}
.server-member-settings-row .manage-member{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}
.server-member-settings-row .manage-member .app-icon{width:17px;height:17px}

.member-role-manager{width:min(620px,88vw);min-height:min(590px,78dvh)}
.member-role-manager-head{display:flex;align-items:center;gap:16px;padding:2px 2px 18px;border-bottom:1px solid var(--settings-border)}
.member-role-manager-head .avatar.large{width:58px;height:58px;font-size:22px;flex:none}
.member-role-manager-head h2{margin:0 0 5px}
.member-role-manager-head strong,.member-role-manager-head small{display:block}
.member-role-manager-head small{color:var(--muted);margin-top:3px}
.member-role-search{margin:16px 0 8px}
.member-role-list{border:0;padding:0;gap:3px}
.member-role-option{min-height:54px;padding:9px 12px;border:1px solid transparent}
.member-role-option:hover{border-color:var(--settings-border);background:var(--hover)}
.member-role-option>span>span{min-width:0}
.member-role-option strong,.member-role-option small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.member-role-option small{color:var(--muted);margin-top:3px;font-size:12px}
.member-role-option input{box-sizing:border-box;flex:0 0 20px}

.invite-row{border-color:var(--settings-border);background:transparent}
.invite-row-copy{min-width:0;flex:1}
.invite-row-copy strong{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:15px}
.invite-row-expiration{display:flex!important;align-items:center;flex-wrap:wrap;gap:2px;color:var(--muted)}
.invite-row-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.invite-row-actions button{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.invite-row-actions .app-icon{width:16px;height:16px}


@media(max-width:900px){
 .server-member-settings-row{grid-template-columns:minmax(170px,1fr) auto}
 .server-member-role-pills{grid-column:1/-1;padding-left:52px}
}
@media(max-width:700px){
 .server-member-settings-row{grid-template-columns:minmax(0,1fr) auto;gap:9px;padding:10px 4px}
 .server-member-role-pills{padding-left:48px;grid-column:1/-1}
 .server-member-settings-row .manage-member span{display:none}
 .server-member-settings-row .manage-member{width:36px;height:36px;padding:0}
 .invite-row{align-items:flex-start;flex-direction:column}
 .invite-row-actions{width:100%;justify-content:flex-start}
}


/* Stable real-time updates and pending attachment previews. */
.sync-patching,.sync-patching *{animation:none!important;transition:none!important}
.pending-attachment-visual{width:58px;height:58px;flex:0 0 58px;border-radius:8px;overflow:hidden;display:grid;place-items:center;background:color-mix(in srgb,var(--input) 82%,var(--panel));border:1px solid color-mix(in srgb,var(--text) 12%,transparent)}
.pending-attachment-visual img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.pending-media-icon .app-icon{width:28px;height:28px;stroke:currentColor}
.pending-media-icon.audio{color:#23a55a;background:color-mix(in srgb,#23a55a 16%,var(--input))}
.pending-media-icon.video{color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--input))}
.pending-media-icon.file{color:var(--muted)}
@media (prefers-reduced-motion:reduce){.avatar img,.member,.dm-row,.message{transition:none!important}}


/* v2.43 — live message presence, Home title, role manager, emoji picker and voice-stage polish */
.server-title-button.home-title-button{cursor:default;pointer-events:none;justify-content:flex-start}
.server-title-button.home-title-button .side-name{font-size:15px;font-weight:700}
.server-title-button.home-title-button:disabled{opacity:1;color:var(--strong)}

.app-role-manager{width:min(660px,92vw);height:min(680px,82dvh);min-height:0;overflow:hidden;background:var(--panel);border:1px solid var(--border);border-radius:12px}
.app-role-manager .member-role-manager-head{padding:4px 4px 18px;border-bottom:0}
.member-role-eyebrow{display:block;margin-bottom:4px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.045em;text-transform:uppercase}
.app-role-manager .member-role-manager-head h2{margin:0 0 4px;font-size:21px;line-height:1.2}
.member-role-manager-copy{padding:0 4px 14px;color:var(--muted);border-bottom:1px solid var(--border)}
.member-role-manager-copy p{margin:0 0 4px;line-height:1.45}.member-role-manager-copy small{color:var(--yellow)}
.app-role-manager .member-role-search{margin:14px 4px 10px}
.app-role-manager .member-role-list{flex:1;min-height:0;overflow:auto;padding:0 4px 8px;display:grid;align-content:start;gap:4px}
.app-role-manager .member-role-option{min-height:58px;padding:9px 12px;border:1px solid transparent;border-radius:8px;background:transparent}
.app-role-manager .member-role-option:hover{background:var(--hover);border-color:color-mix(in srgb,var(--muted) 18%,transparent)}
.app-role-manager .member-role-option.saving{opacity:.68;pointer-events:none}
.member-role-option-main{display:flex;align-items:center;gap:11px;min-width:0}.member-role-option-main>i{width:14px;height:14px;box-shadow:0 0 0 2px color-mix(in srgb,var(--role-color,#99aab5) 24%,transparent)}
.app-role-checkbox{position:relative;width:22px;height:22px;flex:0 0 22px;display:grid;place-items:center}
.app-role-checkbox input{position:absolute;inset:0;width:22px!important;height:22px!important;margin:0;opacity:0;cursor:pointer}
.app-role-checkbox>i{width:22px;height:22px;display:grid;place-items:center;border:2px solid var(--muted);border-radius:5px;color:transparent;background:transparent;pointer-events:none;transition:background .12s,border-color .12s,color .12s}
.app-role-checkbox>i .app-icon{width:15px;height:15px;stroke-width:3}
.app-role-checkbox input:checked+i{background:var(--accent);border-color:var(--accent);color:#fff}
.app-role-checkbox input:focus-visible+i{outline:2px solid color-mix(in srgb,var(--accent) 72%,#fff);outline-offset:2px}
.member-role-option.disabled .app-role-checkbox{opacity:.45}
.member-role-manager-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 -24px -24px;padding:14px 24px;background:color-mix(in srgb,var(--rail) 82%,var(--panel));border-top:1px solid var(--border)}
.member-role-selected-count{color:var(--muted);font-size:13px;font-weight:600}

.profile-settings-grid>section{min-width:0;overflow:visible}
.profile-settings-grid .custom-status-emoji-picker{width:100%;max-width:100%;margin:10px 0 0;position:relative;z-index:20;max-height:min(420px,52dvh)}
.profile-settings-grid .status-emoji-picker-head,.profile-settings-grid .status-emoji-search-wrap,.profile-settings-grid .status-emoji-tabs{flex:0 0 auto}
.profile-settings-grid .status-emoji-tabs{min-height:42px;padding:5px 10px 7px;overflow-x:auto;overflow-y:visible}
.profile-settings-grid .status-emoji-tabs button{width:34px;height:30px;min-height:30px;margin:0}
.profile-settings-grid .status-emoji-scroll{min-height:150px}

.voice-stage{display:grid!important;grid-template-rows:auto minmax(0,1fr) auto;gap:12px;padding:14px 16px 16px;background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 94%,#000),var(--bg));overflow:hidden}
.voice-stage-head{position:static!important;display:flex;align-items:center;justify-content:space-between;pointer-events:auto;padding:0 2px}
.voice-stage-head>div{padding:0!important;background:transparent!important;backdrop-filter:none!important}
.voice-stage-head strong{color:var(--strong)!important;font-size:16px}.voice-stage-head small{color:var(--muted)!important;margin-top:2px}
.voice-stage-head .minimize{background:var(--hover)!important;color:var(--strong)!important;border:1px solid var(--border)}
.voice-stage .voice-grid{min-height:0;padding:0!important;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));grid-auto-rows:minmax(190px,1fr);align-content:center;overflow:auto}
.voice-stage .video-tile{min-height:190px;aspect-ratio:16/9;max-height:min(62vh,720px);border:1px solid color-mix(in srgb,var(--muted) 17%,transparent);background:color-mix(in srgb,var(--rail) 92%,#000);box-shadow:0 10px 30px #0003}
.voice-stage .video-label{left:12px;bottom:12px;padding:5px 9px;border-radius:7px;background:#111b;backdrop-filter:blur(6px)}
.voice-stage .callbar{height:auto;min-height:60px;justify-self:center;padding:8px 12px;border:1px solid var(--border);border-radius:18px;background:color-mix(in srgb,var(--panel) 92%,transparent);box-shadow:0 10px 28px #0005;backdrop-filter:blur(12px)}
.voice-stage .callbar button{width:44px;height:44px;background:var(--hover);color:var(--strong);border:1px solid color-mix(in srgb,var(--muted) 14%,transparent)}
.voice-stage .callbar button:hover{background:color-mix(in srgb,var(--hover) 75%,var(--strong) 10%)}
.voice-stage .callbar .hangup,.voice-stage .callbar button.disabled{background:var(--danger);color:#fff;border-color:transparent}
@media(max-width:700px){.voice-stage{padding:8px;gap:8px}.voice-stage .voice-grid{grid-template-columns:1fr;grid-auto-rows:minmax(170px,1fr)}.voice-stage .callbar{width:max-content;max-width:100%;padding:6px 8px}.app-role-manager{width:100%;height:100%;border:0;border-radius:0}.member-role-manager-footer{margin-inline:-24px}}

/* v2.55 — Accessible text for skeletons and icon-only controls must not become visible UI. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}

/* v2.54 — application-shaped application skeleton system. */
:root{
  --skeleton-base:color-mix(in srgb,var(--muted) 16%,var(--panel));
  --skeleton-raised:color-mix(in srgb,var(--muted) 22%,var(--panel));
  --skeleton-highlight:color-mix(in srgb,var(--strong) 10%,transparent);
  --skeleton-edge:color-mix(in srgb,var(--muted) 12%,transparent);
}
.skeleton-surface{width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;pointer-events:none;user-select:none}
.sk-block,.sk-avatar,.sk-action,.sk-server,.sk-channel-glyph,.sk-channel-pill,.sk-header-glyph,.sk-message-attachment,.sk-reaction-pill,.sk-profile-banner,.sk-voice-tile{
  position:relative;display:block;overflow:hidden;background:var(--skeleton-base)
}
.sk-block::after,.sk-avatar::after,.sk-action::after,.sk-server::after,.sk-channel-glyph::after,.sk-channel-pill::after,.sk-header-glyph::after,.sk-message-attachment::after,.sk-reaction-pill::after,.sk-profile-banner::after,.sk-voice-tile::after{
  content:"";position:absolute;inset:0;transform:translateX(-105%);background:linear-gradient(90deg,transparent,var(--skeleton-highlight),transparent);animation:app-skeleton-wave 1.45s ease-in-out infinite
}
@keyframes app-skeleton-wave{100%{transform:translateX(105%)}}
@media(prefers-reduced-motion:reduce){.sk-block::after,.sk-avatar::after,.sk-action::after,.sk-server::after,.sk-channel-glyph::after,.sk-channel-pill::after,.sk-header-glyph::after,.sk-message-attachment::after,.sk-reaction-pill::after,.sk-profile-banner::after,.sk-voice-tile::after{animation:none;opacity:.45}}
.sk-block{height:10px;border-radius:5px}.sk-line-xs{width:48px;height:8px}.sk-line-sm{width:76px}.sk-line-md{width:112px}.sk-line-lg{width:154px}.sk-line-xl{width:min(100%,360px)}.sk-title-line{width:190px;height:20px;border-radius:7px}.sk-title-line-small{width:146px;height:16px}.sk-time-line{width:46px;height:7px}.sk-message-line{width:min(76%,610px)}.sk-message-line-long{width:min(90%,720px)}.sk-message-line-medium{width:min(60%,480px)}.sk-message-line-short{width:min(38%,310px)}.sk-search-pill{width:176px;height:28px;border-radius:8px}.sk-button-pill{width:108px;height:36px;border-radius:6px}.sk-composer-line{height:12px;min-width:120px;flex:1}.sk-category-line{width:92px;height:8px;margin:14px 8px 7px}.sk-category-line-short{width:66px}
.sk-avatar{flex:none;border-radius:50%;background:var(--skeleton-raised)}.sk-avatar-xxs{width:20px;height:20px}.sk-avatar-xs{width:28px;height:28px}.sk-avatar-sm{width:32px;height:32px}.sk-avatar-md{width:38px;height:38px}.sk-avatar-message{width:40px;height:40px;margin:2px 0 0 8px}.sk-avatar-profile{width:76px;height:76px}
.sk-action{width:28px;height:28px;flex:none;border-radius:7px;background:var(--skeleton-base)}
.app-skeleton-grid{height:100%;display:grid;grid-template-columns:72px var(--user-sidebar-width,240px) minmax(360px,1fr) 240px;grid-template-rows:48px minmax(0,1fr);grid-template-areas:"skrail sksidebar skheader skheader" "skrail sksidebar skmain skmembers";background:var(--rail)}
.sk-app-rail{grid-area:skrail;display:flex;flex-direction:column;align-items:center;padding:12px 8px 10px;overflow:hidden;background:var(--rail)}
.sk-server{width:48px;height:48px;min-height:48px;margin-bottom:8px;border-radius:16px;background:var(--skeleton-base)}.sk-server-home{border-radius:16px;background:color-mix(in srgb,var(--accent) 52%,var(--skeleton-base))}.sk-server-active{border-radius:13px}.sk-server-add{margin-top:2px;border-radius:16px}.sk-rail-separator{width:32px;height:2px;margin:0 0 8px;border-radius:2px;background:var(--skeleton-edge)}
.sk-app-sidebar{grid-area:sksidebar;display:flex;min-height:0;flex-direction:column;margin:8px 0 8px;border-radius:16px 0 0 16px;overflow:hidden;background:var(--panel)}
.sk-sidebar-region{height:100%;display:flex;min-height:0;flex-direction:column;background:var(--panel)}
.sk-sidebar-region-head{height:48px;min-height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--skeleton-edge)}
.sk-sidebar-region-scroll{flex:1;min-height:0;padding:9px 8px;overflow:hidden}.sk-channel-row,.sk-sidebar-user,.sk-sidebar-feature,.sk-member-row{display:flex;align-items:center;gap:9px;min-width:0}
.sk-channel-row{height:34px;padding:6px 8px;margin:0 8px 2px;border-radius:6px}.sk-channel-row .sk-block{max-width:calc(100% - 44px)}.sk-channel-glyph{width:18px;height:18px;flex:none;border-radius:5px}.sk-channel-pill{width:24px;height:16px;margin-left:auto;border-radius:8px}.sk-voice-user{height:28px;display:flex;align-items:center;gap:8px;margin:0 10px 2px 36px}
.sk-sidebar-user,.sk-sidebar-feature{height:44px;padding:5px 9px;margin:0 4px 2px;border-radius:6px}.sk-sidebar-user>div,.sk-sidebar-feature>div,.sk-member-row>div,.sk-friend-row>div,.sk-list-row>div{display:grid;gap:6px;min-width:0;flex:1}.sk-sidebar-feature>.sk-action{width:32px;height:32px}
.sk-userbar-region{height:56px;min-height:56px;display:flex;align-items:center;gap:7px;margin:6px;padding:6px 7px;border-radius:12px;background:color-mix(in srgb,var(--input) 72%,transparent)}.sk-userbar-copy{display:grid;gap:6px;min-width:0;flex:1}.sk-userbar-region>.sk-action{width:26px;height:26px}
.sk-app-header{grid-area:skheader;display:flex;align-items:center;gap:8px;margin:8px 8px 0 0;padding:0 12px;border-bottom:1px solid var(--skeleton-edge);border-radius:0 16px 0 0;background:var(--top);overflow:hidden}.sk-header-region{width:100%;height:100%;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--top)}.sk-header-glyph{width:20px;height:20px;flex:none;border-radius:6px}.sk-header-divider{width:1px;height:22px;margin:0 4px;background:var(--skeleton-edge)}.sk-header-topic{max-width:260px}.sk-header-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.sk-header-actions>.sk-action{width:28px;height:28px}
.sk-app-main{grid-area:skmain;min-height:0;display:flex;flex-direction:column;margin:0 0 8px 0;background:var(--bg);overflow:hidden}.sk-chat-region{height:100%;min-height:0;display:flex;flex-direction:column;background:var(--bg)}
.sk-app-members{grid-area:skmembers;min-height:0;margin:0 8px 8px 0;border-left:1px solid var(--skeleton-edge);border-radius:0 0 16px 0;background:var(--panel);overflow:hidden}.sk-members-region{height:100%;padding:10px 8px;overflow:hidden}.sk-member-row{height:42px;padding:5px 8px}.sk-member-row .sk-avatar{opacity:.86}
.message-skeleton-list{width:100%;min-height:0;padding:18px 0 12px;overflow:hidden}.sk-app-main>.message-skeleton-list,.sk-chat-region>.message-skeleton-list{margin-top:auto}.message-skeleton-row{display:grid;grid-template-columns:56px minmax(0,1fr);gap:0;padding:5px 16px;min-height:50px}.message-skeleton-copy{display:grid;align-content:start;gap:7px;max-width:760px;padding-top:2px}.message-skeleton-head{display:flex;align-items:center;gap:9px}.message-skeleton-row.with-attachment{min-height:180px}.sk-message-attachment{width:min(310px,65vw);height:118px;margin-top:3px;border-radius:8px}.sk-reaction-pill{width:54px;height:24px;margin-top:1px;border-radius:8px}
.sk-chat-composer,.sk-composer-region{height:48px;min-height:48px;display:flex;align-items:center;gap:8px;margin:0 16px 20px;padding:8px;border-radius:12px;background:var(--input)}.sk-chat-composer>.sk-action,.sk-composer-region>.sk-action{width:28px;height:28px;background:color-mix(in srgb,var(--muted) 16%,var(--input))}
.sk-friends-region{height:100%;padding:22px 24px 32px;overflow:hidden;background:var(--bg)}.sk-friends-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:22px}.sk-friends-toolbar>div,.sk-friends-card-head>div{display:grid;gap:9px}.sk-friends-card{padding:16px;border:1px solid var(--skeleton-edge);border-radius:12px;background:color-mix(in srgb,var(--panel) 65%,transparent)}.sk-friends-card-head{display:flex;align-items:center;gap:12px;padding-bottom:12px}.sk-friends-list{margin-top:20px}.sk-friend-row{min-height:58px;padding:9px 8px;border-top:1px solid var(--skeleton-edge)}
.sk-search-results{display:grid;gap:10px;padding:4px 0}.sk-search-result{display:grid;gap:9px;padding:14px;border:1px solid var(--skeleton-edge);border-radius:8px;background:color-mix(in srgb,var(--input) 42%,transparent)}.sk-search-result-head{display:flex;align-items:center;gap:9px}.sk-search-result-head>div{display:grid;gap:6px;flex:1}
.sk-settings-region{display:grid;gap:14px;padding-bottom:30px}.sk-settings-heading{display:grid;gap:10px;margin-bottom:4px}.sk-settings-card{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px;border:1px solid var(--skeleton-edge);border-radius:8px;background:var(--settings-card-bg,var(--panel))}.sk-settings-card-copy{display:grid;gap:8px;min-width:0;flex:1}
.sk-list-region{display:grid;gap:8px}.sk-list-row{min-height:72px;display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--skeleton-edge);border-radius:8px;background:color-mix(in srgb,var(--input) 42%,transparent)}
.sk-profile-region{height:100%;min-height:410px;background:var(--panel);overflow:hidden}.sk-profile-banner{height:116px;background:color-mix(in srgb,var(--accent) 42%,var(--skeleton-raised))}.sk-profile-avatar{height:0;position:relative;top:-40px;margin-left:22px}.sk-profile-avatar .sk-avatar{border:6px solid var(--panel)}.sk-profile-body{display:grid;gap:10px;padding:48px 24px 24px}.sk-profile-card{display:grid;gap:9px;margin-top:8px;padding:14px;border-radius:8px;background:var(--settings-inner-bg,var(--input))}
.sk-voice-region{height:100%;display:flex;min-height:0;flex-direction:column;background:#111214}.sk-voice-head{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 16px}.sk-voice-grid{flex:1;display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;padding:18px}.sk-voice-tile{display:grid;place-items:center;align-content:center;gap:14px;border-radius:12px;background:#1e1f22}.sk-voice-controls{height:72px;display:flex;align-items:center;justify-content:center;gap:12px}.sk-voice-controls .sk-action{width:44px;height:44px;border-radius:50%}
.skeleton-overlay{position:absolute!important;inset:0!important;z-index:80!important;display:block!important;overflow:hidden!important;background:inherit;cursor:progress;pointer-events:auto!important}.sidebar,.header,.main,.members,.settings-content,.search-results{position:relative}.skeleton-overlay-header{z-index:90!important}.skeleton-overlay .skeleton-surface{background:inherit}
:root[data-theme="light"]{--skeleton-base:#d4d7dc;--skeleton-raised:#c7c9cd;--skeleton-highlight:rgba(255,255,255,.62);--skeleton-edge:rgba(6,6,7,.1)}

@media(min-width:701px) and (max-width:1000px){
 .app-skeleton-grid{grid-template-columns:64px 224px minmax(0,1fr);grid-template-areas:"skrail sksidebar skheader" "skrail sksidebar skmain"}.sk-app-members{display:none}.sk-app-header{border-radius:16px 16px 0 0;margin-left:8px}.sk-app-main{margin-left:8px;border-radius:0 0 16px 16px}.sk-server{width:44px;height:44px;min-height:44px}
}
@media(max-width:700px){
 .app-skeleton-grid{grid-template-columns:1fr;grid-template-rows:48px minmax(0,1fr) 68px;grid-template-areas:"skheader" "skmain" "skmobile";background:var(--bg)}.sk-app-rail,.sk-app-sidebar,.sk-app-members{display:none}.sk-app-header{margin:0;border-radius:0;padding-inline:10px}.sk-app-header .sk-header-topic,.sk-app-header .sk-header-divider,.sk-app-header .sk-search-pill,.sk-app-header .sk-header-actions>.sk-action:first-child{display:none}.sk-app-main{margin:0;padding-bottom:0}.sk-app-mobile-nav{grid-area:skmobile;display:grid!important;grid-template-columns:repeat(4,1fr);align-items:center;padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-top:1px solid var(--skeleton-edge);background:var(--panel)}.sk-app-mobile-nav .sk-action{width:40px;height:40px;margin:auto;border-radius:12px}.message-skeleton-row{grid-template-columns:46px minmax(0,1fr);padding:5px 8px}.sk-avatar-message{width:36px;height:36px;margin-left:2px}.message-skeleton-row.with-attachment{min-height:154px}.sk-message-attachment{width:min(260px,70vw);height:92px}.sk-chat-composer{margin:0 10px 12px}.sk-friends-region{padding:18px 12px 90px}.sk-friends-toolbar .sk-line-lg{display:none}.sk-button-pill{width:92px}.sk-settings-card{align-items:flex-start}.sk-header-region{padding-inline:10px}.sk-header-region .sk-header-topic,.sk-header-region .sk-header-divider,.sk-header-region .sk-search-pill{display:none}.sk-voice-grid{grid-template-columns:1fr}.sk-sidebar-region{width:min(300px,86vw)}
}
@media(min-width:701px){.sk-app-mobile-nav{display:none}}

/* Compatibility guard: the original v1.57 skeleton selectors target every nested
   span. Keep their fallback markup working without overriding the richer v2.01
   application-shaped skeleton components. */
.message-skeleton-row>.sk-avatar,
.message-skeleton-row .sk-block,
.message-skeleton-row .sk-message-attachment,
.message-skeleton-row .sk-reaction-pill{
  margin-top:0;background:var(--skeleton-base)!important;background-size:auto!important;animation:none!important
}
.message-skeleton-row>.sk-avatar{width:40px;height:40px;margin-left:8px;border-radius:50%;background:var(--skeleton-raised)!important}
.message-skeleton-row .message-skeleton-copy{padding-top:1px;max-width:760px}
.message-skeleton-row .message-skeleton-head{display:flex;align-items:center;gap:8px;height:16px;margin-bottom:5px}
.message-skeleton-row .message-skeleton-head .sk-block{margin:0}
.message-skeleton-row .sk-line-xs{width:48px;height:8px}.message-skeleton-row .sk-line-sm{width:76px;height:10px}.message-skeleton-row .sk-line-md{width:112px;height:10px}.message-skeleton-row .sk-line-lg{width:154px;height:10px}
.message-skeleton-row .sk-time-line{width:46px;height:7px}
.message-skeleton-row .sk-message-line{width:min(76%,610px);height:10px;margin-top:6px}
.message-skeleton-row .sk-message-line-long{width:min(90%,720px);height:10px;margin-top:6px}
.message-skeleton-row .sk-message-line-medium{width:min(60%,480px);height:10px;margin-top:6px}
.message-skeleton-row .sk-message-line-short{width:min(38%,310px);height:10px;margin-top:6px}
.message-skeleton-row.sk-row-short .sk-message-line,
.message-skeleton-row.sk-row-short .sk-message-line-long{width:min(48%,380px)}
.message-skeleton-row .sk-message-attachment{display:block;width:min(360px,72%);height:132px;margin-top:10px;border-radius:9px}
.message-skeleton-row .sk-reaction-pill{display:block;width:54px;height:24px;margin-top:8px;border-radius:8px}
@media(max-width:700px){.message-skeleton-row>.sk-avatar{width:36px;height:36px;margin-left:2px}.message-skeleton-row .message-skeleton-copy{padding-left:2px}}

/* v2.56 — application-style dedicated server role management. */
.app-settings.role-management-mode{
  grid-template-columns:minmax(0,1fr)!important;
}
.app-settings.role-management-mode>.settings-nav{display:none!important}
.app-settings.role-management-mode>.settings-content{
  max-width:none!important;
  padding:0!important;
  overflow:hidden!important;
}
.app-settings.role-management-mode>.settings-content>*{max-width:none!important}
.app-role-settings{
  display:grid;
  grid-template-columns:280px minmax(0,1fr);
  width:100%;
  height:100%;
  min-height:0;
  overflow:hidden;
  background:var(--bg);
}
.app-role-sidebar{
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:0;
  padding:18px 10px 14px;
  overflow:hidden;
  background:var(--panel);
  border-right:1px solid var(--settings-border,var(--border));
}
.app-role-sidebar-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:0 4px 14px;
  border-bottom:1px solid var(--settings-border,var(--border));
}
.role-settings-back{
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px 8px;
  border:0;
  border-radius:5px;
  background:transparent;
  color:var(--muted);
  font-weight:650;
  cursor:pointer;
}
.role-settings-back:hover{background:var(--hover);color:var(--strong)}
.role-settings-back .app-icon{width:17px;height:17px;flex:none}
.app-role-sidebar-head>.add-role-quick{
  width:32px!important;
  height:32px!important;
  min-height:32px!important;
  flex:0 0 32px;
  display:grid;
  place-items:center;
  padding:0!important;
  border-radius:50%!important;
  background:var(--hover);
  color:var(--strong);
}
.app-role-sidebar-title{padding:16px 10px 4px}
.app-role-sidebar-title strong,
.app-role-sidebar-title small{display:block}
.app-role-sidebar-title strong{color:var(--strong);font-size:15px}
.app-role-sidebar-title small{margin-top:3px;color:var(--muted);font-size:11px;line-height:1.35}
.app-role-search{
  position:relative;
  display:flex;
  align-items:center;
  margin:10px 6px 12px;
}
.app-role-search>.app-icon{
  position:absolute;
  left:10px;
  z-index:1;
  width:16px;
  height:16px;
  color:var(--muted);
  pointer-events:none;
}
.app-role-search>.field{
  min-height:34px;
  padding:8px 10px 8px 34px;
  background:var(--input);
}
.app-role-sidebar>.role-list-scroll{
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:0 2px 8px;
  overflow:auto;
}
.app-role-row{
  position:relative;
  width:100%;
  min-height:48px;
  display:grid;
  grid-template-columns:18px 14px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  padding:7px 8px;
  border:0;
  border-radius:6px;
  background:transparent;
  color:var(--muted);
  text-align:left;
  cursor:pointer;
}
.app-role-row:hover{background:var(--hover);color:var(--strong)}
.app-role-row.active{background:color-mix(in srgb,var(--hover) 78%,var(--accent) 10%);color:var(--strong)}
.app-role-row[hidden]{display:none!important}
.app-role-row .drag-handle{
  width:18px;
  overflow:hidden;
  color:var(--muted);
  font-size:16px;
  line-height:1;
  opacity:0;
  cursor:grab;
  transition:opacity .12s ease;
}
.app-role-row:hover .drag-handle,
.app-role-row.active .drag-handle{opacity:.75}
.app-role-row.drag-locked .drag-handle{opacity:.18;cursor:not-allowed}
.app-role-dot{
  width:12px;
  height:12px;
  border-radius:50%;
  background:var(--role-color,#99aab5);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--role-color,#99aab5) 18%,transparent);
}
.app-role-row-copy{min-width:0}
.app-role-row-copy strong,
.app-role-row-copy small{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.app-role-row-copy strong{color:inherit;font-size:13px;font-weight:650}
.app-role-row-copy small{margin-top:2px;color:var(--muted);font-size:11px;font-weight:500}
.app-role-default{
  padding:2px 5px;
  border-radius:4px;
  background:var(--input);
  color:var(--muted);
  font-size:9px;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.app-role-editor{
  position:relative;
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:var(--bg);
}
.app-role-editor-head{
  flex:none;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  min-height:90px;
  padding:28px clamp(28px,4.5vw,64px) 16px;
}
.app-role-editor-eyebrow{
  display:block;
  margin-bottom:5px;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.app-role-editor-head h2{margin:0!important;color:var(--strong);font-size:22px;line-height:1.2}
.app-role-tabs{
  flex:none;
  display:flex;
  align-items:flex-end;
  gap:18px;
  min-height:43px;
  padding:0 clamp(28px,4.5vw,64px);
  border-bottom:1px solid var(--settings-border,var(--border));
}
.app-role-tabs button{
  position:relative;
  min-height:43px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:0 1px;
  border:0;
  background:transparent;
  color:var(--muted);
  font-weight:650;
  cursor:pointer;
}
.app-role-tabs button:hover{color:var(--strong)}
.app-role-tabs button.active{color:var(--strong)}
.app-role-tabs button.active::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:2px;
  border-radius:2px 2px 0 0;
  background:var(--accent);
}
.app-role-tabs b{
  min-width:19px;
  height:19px;
  display:grid;
  place-items:center;
  padding:0 5px;
  border-radius:10px;
  background:var(--input);
  color:var(--muted);
  font-size:10px;
}
.app-role-editor-scroll{
  flex:1;
  min-height:0;
  padding:28px clamp(28px,4.5vw,64px) 72px;
  overflow:auto;
}
.app-role-editor.has-unsaved-changes>.app-role-editor-scroll{padding-bottom:132px}
.app-role-editor>.settings-unsaved-bar{
  position:absolute;
  left:clamp(28px,4.5vw,64px);
  right:clamp(28px,4.5vw,64px);
  bottom:18px;
  width:auto;
  margin:0;
}
.app-role-section{width:min(100%,820px);margin:0 auto}
.app-role-section-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  margin-bottom:22px;
}
.app-role-section-heading h3{margin:0 0 6px;color:var(--strong);font-size:20px}
.app-role-section-heading p{margin:0;color:var(--muted);line-height:1.45}
.app-role-display-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(230px,300px);
  align-items:start;
  gap:32px;
}
.app-role-form>label:not(.app-switch-row){margin-top:18px}
.app-role-form>label:first-child{margin-top:0}
.app-role-color-editor{display:flex;align-items:center;gap:12px}
.app-role-color-editor .role-color{
  width:64px;
  height:42px;
  padding:2px;
  border:1px solid var(--settings-border,var(--border));
  border-radius:5px;
  background:var(--input);
}
.app-role-color-editor .role-color-value{font-size:12px;font-weight:700}
.app-role-color-swatches{
  display:grid;
  grid-template-columns:repeat(5,34px);
  gap:8px;
  margin-top:12px;
}
.app-role-color-swatches button{
  width:34px;
  height:34px;
  padding:0;
  border:2px solid transparent;
  border-radius:5px;
  background:var(--swatch,var(--accent));
  cursor:pointer;
  box-shadow:inset 0 0 0 1px #0002;
}
.app-role-color-swatches button:hover:not(:disabled),
.app-role-color-swatches button:focus-visible{border-color:var(--strong);outline:none}
.app-role-color-swatches button:disabled{opacity:.48;cursor:not-allowed}
.app-role-hoist{margin-top:26px!important}
.app-role-preview-label{
  display:block;
  margin-bottom:8px;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
}
.app-role-preview-card{
  min-height:76px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  border:1px solid var(--settings-border,var(--border));
  border-radius:8px;
  background:var(--panel);
  box-shadow:0 8px 24px #0002;
}
.app-role-preview-card .avatar{width:42px;height:42px}
.app-role-preview-card strong,
.app-role-preview-card small{display:block}
.app-role-preview-card strong{color:var(--preview-role-color,#99aab5);font-size:14px}
.app-role-preview-card small{margin-top:3px;color:var(--muted);font-size:12px}
.app-role-danger{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:38px;
  padding:16px;
  border:1px solid color-mix(in srgb,var(--danger) 70%,transparent);
  border-radius:8px;
}
.app-role-danger strong,.app-role-danger small{display:block}
.app-role-danger strong{color:var(--strong)}
.app-role-danger small{margin-top:4px;color:var(--muted);line-height:1.35}
.app-role-danger .danger-button{flex:none}
.role-permissions-section>.app-role-search,
.role-members-section>.app-role-search{margin:0 0 18px}
.app-permission-sections{display:grid;gap:26px}
.app-permission-section[hidden]{display:none!important}
.app-permission-section>header{
  padding-bottom:8px;
  border-bottom:1px solid var(--settings-border,var(--border));
}
.app-permission-section h4{
  margin:0;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.permission-row.app-permission-row{
  min-height:64px;
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin:0!important;
  padding:13px 4px!important;
  border:0!important;
  border-bottom:1px solid color-mix(in srgb,var(--settings-border,var(--border)) 70%,transparent)!important;
  border-radius:0!important;
  background:transparent!important;
  text-transform:none!important;
}
.permission-row.app-permission-row[hidden]{display:none!important}
.permission-row.app-permission-row:hover{background:color-mix(in srgb,var(--hover) 55%,transparent)!important}
.app-permission-copy{min-width:0}
.app-permission-copy strong,
.app-permission-copy small{display:block}
.app-permission-copy strong{font-size:14px}
.app-permission-copy small{margin-top:4px;color:var(--muted)!important;font-size:12px;line-height:1.4}
.app-toggle{
  position:relative;
  width:40px;
  height:24px;
  flex:0 0 40px;
  display:block;
}
.app-toggle input{
  position:absolute!important;
  inset:0;
  width:40px!important;
  height:24px!important;
  margin:0!important;
  opacity:0;
  cursor:pointer;
}
.app-toggle i{
  position:absolute;
  inset:0;
  border-radius:12px;
  background:#80848e;
  pointer-events:none;
  transition:background .14s ease;
}
.app-toggle i::after{
  content:"";
  position:absolute;
  top:3px;
  left:3px;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 3px #0004;
  transition:transform .14s ease;
}
.app-toggle input:checked+i{background:var(--green)}
.app-toggle input:checked+i::after{transform:translateX(16px)}
.app-toggle input:focus-visible+i{outline:2px solid var(--accent);outline-offset:2px}
.app-toggle input:disabled{cursor:not-allowed}
.permission-locked .app-toggle,.app-switch-row:has(input:disabled) .app-toggle{opacity:.5}
.app-role-notice{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
  padding:12px 14px;
  border:1px solid color-mix(in srgb,var(--accent) 35%,var(--settings-border,var(--border)));
  border-radius:7px;
  background:color-mix(in srgb,var(--accent) 10%,transparent);
  color:var(--text);
}
.app-role-notice .app-icon{width:18px;height:18px;color:var(--accent);flex:none}
.app-role-member-list{
  display:flex;
  flex-direction:column;
  border-top:1px solid var(--settings-border,var(--border));
  border-bottom:1px solid var(--settings-border,var(--border));
}
.app-role-member-row{
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin:0!important;
  padding:9px 8px;
  border-bottom:1px solid color-mix(in srgb,var(--settings-border,var(--border)) 64%,transparent);
  border-radius:5px;
  color:var(--text);
  text-transform:none!important;
  cursor:pointer;
}
.app-role-member-row:last-child{border-bottom:0}
.app-role-member-row:hover{background:var(--hover)}
.app-role-member-row[hidden]{display:none!important}
.app-role-member-row.disabled{opacity:.52;cursor:not-allowed}
.app-role-member-identity{min-width:0;display:flex;align-items:center;gap:11px}
.app-role-member-identity>.avatar{width:36px;height:36px}
.app-role-member-identity>span{min-width:0}
.app-role-member-identity strong,
.app-role-member-identity small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-role-member-identity strong{color:var(--strong);font-size:13px;text-transform:none}
.app-role-member-identity small{margin-top:2px;color:var(--muted);font-size:11px;font-weight:500;text-transform:none}
.app-role-member-check{
  position:relative;
  width:22px;
  height:22px;
  flex:0 0 22px;
}
.app-role-member-check input{
  position:absolute;
  inset:0;
  width:22px!important;
  height:22px!important;
  margin:0!important;
  opacity:0;
  cursor:pointer;
}
.app-role-member-check i{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border:2px solid var(--muted);
  border-radius:5px;
  color:transparent;
  pointer-events:none;
}
.app-role-member-check i .app-icon{width:14px;height:14px;stroke-width:3}
.app-role-member-check input:checked+i{border-color:var(--accent);background:var(--accent);color:#fff}
.app-role-member-check input:focus-visible+i{outline:2px solid var(--accent);outline-offset:2px}

:root[data-theme="light"] .app-role-sidebar{background:#f2f3f5}
:root[data-theme="light"] .app-role-editor{background:#fff}
:root[data-theme="light"] .app-role-preview-card{background:#f2f3f5;box-shadow:0 8px 20px #0001}
:root[data-theme="light"] .app-role-row.active{background:#dfe1e5}
:root[data-theme="light"] .app-role-default{background:#d9dce1}

@media(max-width:900px){
  .app-role-settings{grid-template-columns:230px minmax(0,1fr)}
  .app-role-editor-head{padding-inline:24px}
  .app-role-tabs{padding-inline:24px;gap:14px}
  .app-role-editor-scroll{padding-inline:24px}
  .app-role-editor>.settings-unsaved-bar{left:24px;right:24px}
  .app-role-display-layout{grid-template-columns:1fr;gap:24px}
  .app-role-preview{max-width:340px}
}
@media(max-width:700px){
  .app-role-settings{
    grid-template-columns:1fr;
    grid-template-rows:minmax(190px,34dvh) minmax(0,1fr);
  }
  .app-role-sidebar{
    padding:10px 8px 8px;
    border-right:0;
    border-bottom:1px solid var(--settings-border,var(--border));
  }
  .app-role-sidebar-head{padding-bottom:8px}
  .app-role-sidebar-title{display:none}
  .app-role-search{margin:8px 4px}
  .app-role-row{min-height:44px}
  .app-role-editor-head{min-height:68px;padding:14px 16px 8px}
  .app-role-editor-head h2{font-size:18px}
  .app-role-tabs{min-height:40px;padding-inline:16px;gap:14px;overflow-x:auto;white-space:nowrap}
  .app-role-tabs button{min-height:40px;flex:none}
  .app-role-editor-scroll{padding:20px 16px 110px}
  .app-role-editor>.settings-unsaved-bar{left:10px;right:10px;bottom:10px}
  .app-role-section-heading{margin-bottom:18px}
  .app-role-display-layout{gap:20px}
  .app-role-color-swatches{grid-template-columns:repeat(5,30px)}
  .app-role-color-swatches button{width:30px;height:30px}
  .app-role-danger{align-items:flex-start;flex-direction:column}
  .app-role-danger .danger-button{width:100%}
  .permission-row.app-permission-row{gap:16px}
}


/* v2.57 — Rebuilt application-style member role assignment workspace. */
.modal.modal-member-roles{
  width:min(920px,calc(100vw - 40px));
  max-width:none;
  height:min(660px,calc(100dvh - 48px));
  min-height:520px;
  padding:0;
  overflow:hidden;
  border-radius:12px;
}
.modal.modal-member-roles>.close{
  top:14px;
  right:14px;
  z-index:12;
  width:34px;
  height:34px;
  border-radius:50%;
  background:color-mix(in srgb,var(--panel) 82%,transparent);
  border:1px solid color-mix(in srgb,var(--muted) 18%,transparent);
  backdrop-filter:blur(8px);
}
.member-role-manager-v2{
  width:100%!important;
  height:100%;
  min-height:0!important;
  display:grid!important;
  grid-template-columns:288px minmax(0,1fr);
  overflow:hidden;
  background:var(--panel);
  color:var(--text);
}
.member-role-v2-profile{
  min-width:0;
  overflow:hidden;
  background:color-mix(in srgb,var(--rail) 92%,#000);
  border-right:1px solid var(--border);
}
.member-role-v2-banner{
  height:112px;
  background:
    radial-gradient(circle at 18% 12%,color-mix(in srgb,var(--member-role-accent,var(--accent)) 74%,#fff) 0 3px,transparent 4px),
    radial-gradient(circle at 78% 28%,color-mix(in srgb,var(--member-role-accent,var(--accent)) 62%,#fff) 0 2px,transparent 3px),
    linear-gradient(135deg,color-mix(in srgb,var(--member-role-accent,var(--accent)) 88%,#111827),color-mix(in srgb,var(--member-role-accent,var(--accent)) 24%,#111214));
  transition:background .18s ease;
}
.member-role-v2-profile-body{position:relative;padding:0 20px 20px}
.member-role-v2-avatar-wrap{height:48px;margin-bottom:13px}
.member-role-v2-avatar-wrap>.avatar.large{
  position:relative;
  top:-42px;
  width:86px;
  height:86px;
  border:7px solid color-mix(in srgb,var(--rail) 92%,#000);
  font-size:30px;
  box-shadow:0 3px 12px #0005;
}
.member-role-v2-avatar-wrap>.avatar.large .status-dot{right:1px;bottom:1px;width:18px;height:18px;border-width:4px}
.member-role-v2-kicker,
.member-role-v2-summary-head>span{
  display:block;
  color:var(--muted);
  font-size:11px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.member-role-v2-profile-body h2{display:flex;align-items:center;gap:6px;margin:5px 0 2px;color:var(--strong);font-size:22px;line-height:1.2;overflow-wrap:anywhere}
.member-role-v2-profile-body h2 .server-owner-crown{display:inline-grid;place-items:center;color:var(--yellow);flex:none}
.member-role-v2-profile-body>p{margin:0;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.member-role-v2-status{display:flex;align-items:center;gap:8px;min-width:0;margin-top:13px;padding:8px 10px;border-radius:7px;background:#0002;color:var(--text);font-size:12px}
.member-role-v2-status>i{width:10px;height:10px;flex:none;border-radius:50%;background:var(--offline)}
.member-role-v2-status>i[data-status="online"]{background:var(--green)}
.member-role-v2-status>i[data-status="idle"]{background:var(--yellow)}
.member-role-v2-status>i[data-status="dnd"]{background:var(--danger)}
.member-role-v2-status>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.member-role-v2-divider{height:1px;margin:18px 0;background:var(--border)}
.member-role-v2-summary-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.member-role-v2-summary-head>b{min-width:22px;height:20px;display:grid;place-items:center;padding:0 6px;border-radius:10px;background:var(--hover);color:var(--strong);font-size:11px}
.member-role-v2-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:28px}
.member-role-v2-chip{max-width:100%;display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid color-mix(in srgb,var(--role-color,#99aab5) 34%,var(--border));border-radius:6px;background:color-mix(in srgb,var(--role-color,#99aab5) 12%,transparent);color:var(--strong);font-size:11px;font-weight:650}
.member-role-v2-chip>i{width:8px;height:8px;flex:none;border-radius:50%;background:var(--role-color,#99aab5)}
.member-role-v2-chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.member-role-v2-chip.more{border-color:var(--border);background:var(--hover);color:var(--muted)}
.member-role-v2-no-role{color:var(--muted);font-size:12px}
.member-role-v2-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}
.member-role-v2-stats>div{padding:11px;border-radius:8px;background:#0002}
.member-role-v2-stats strong,.member-role-v2-stats small{display:block}
.member-role-v2-stats strong{color:var(--strong);font-size:18px}.member-role-v2-stats small{margin-top:2px;color:var(--muted);font-size:10px;font-weight:750;text-transform:uppercase}
.member-role-v2-hierarchy-note{display:flex;align-items:flex-start;gap:8px;margin-top:14px;padding:9px 10px;border-radius:7px;background:color-mix(in srgb,var(--yellow) 10%,transparent);color:var(--muted);font-size:11px;line-height:1.4}
.member-role-v2-hierarchy-note .app-icon{width:14px;height:14px;flex:none;color:var(--yellow)}
.member-role-v2-assignment{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--panel)}
.member-role-v2-head{display:flex;align-items:center;gap:14px;padding:23px 58px 16px 26px;border-bottom:1px solid var(--border)}
.member-role-v2-head-icon{width:42px;height:42px;display:grid;place-items:center;flex:none;border-radius:12px;background:color-mix(in srgb,var(--accent) 17%,transparent);color:var(--accent)}
.member-role-v2-head-icon .app-icon{width:22px;height:22px}
.member-role-v2-head>div:last-child{min-width:0}
.member-role-v2-head>div:last-child>span{display:block;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.member-role-v2-head h1{margin:2px 0 2px;color:var(--strong);font-size:21px;line-height:1.2}
.member-role-v2-head p{margin:0;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-role-v2-head p strong{color:var(--text)}
.member-role-v2-toolbar{padding:15px 22px 12px;border-bottom:1px solid var(--border)}
.member-role-v2-search{position:relative;display:block;margin:0}
.member-role-v2-search>.app-icon{position:absolute;left:11px;top:50%;width:17px;height:17px;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.member-role-v2-search input{width:100%;height:38px;padding:0 40px 0 38px;border:1px solid var(--border);border-radius:7px;background:var(--input,#111214);color:var(--strong);outline:0}
.member-role-v2-search input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.member-role-v2-clear{position:absolute;right:5px;top:5px;width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:5px;background:transparent;color:var(--muted);cursor:pointer}.member-role-v2-clear:hover{background:var(--hover);color:var(--strong)}.member-role-v2-clear .app-icon{width:15px;height:15px}
.member-role-v2-filters{display:flex;align-items:center;gap:5px;margin-top:11px}
.member-role-v2-filters button{min-width:0;display:flex;align-items:center;gap:7px;padding:7px 10px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer}
.member-role-v2-filters button:hover{background:var(--hover);color:var(--strong)}
.member-role-v2-filters button.active{background:color-mix(in srgb,var(--accent) 17%,transparent);color:var(--strong)}
.member-role-v2-filters button b{min-width:18px;padding:1px 5px;border-radius:9px;background:#0003;color:inherit;font-size:10px;text-align:center}
.member-role-v2-list{flex:1;min-height:0;overflow:auto;padding:10px 14px 16px 18px;scrollbar-gutter:stable}
.member-role-v2-group+ .member-role-v2-group{margin-top:18px}
.member-role-v2-group>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 7px}
.member-role-v2-group>header h3{margin:0;color:var(--muted);font-size:11px;letter-spacing:.05em;text-transform:uppercase}.member-role-v2-group>header span{color:var(--muted);font-size:11px}
.member-role-v2-group-list{display:grid;gap:3px}
.member-role-v2-row{width:100%;min-height:62px;display:grid;grid-template-columns:38px minmax(0,1fr) 32px;align-items:center;gap:10px;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);text-align:left;cursor:pointer;transition:background .12s,border-color .12s,transform .12s}
.member-role-v2-row:hover{background:var(--hover);border-color:color-mix(in srgb,var(--muted) 16%,transparent)}
.member-role-v2-row:active:not(:disabled){transform:scale(.995)}
.member-role-v2-row.assigned{background:color-mix(in srgb,var(--role-color,#5865f2) 5%,var(--hover));border-color:color-mix(in srgb,var(--role-color,#5865f2) 18%,transparent)}
.member-role-v2-row.locked{opacity:.52;cursor:not-allowed}.member-role-v2-row.saving{opacity:.65;pointer-events:none}
.member-role-v2-role-mark{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--role-color,#99aab5) 16%,transparent);color:var(--role-color,#99aab5)}
.member-role-v2-role-mark .app-icon{width:18px;height:18px}
.member-role-v2-role-copy{min-width:0}.member-role-v2-role-copy strong,.member-role-v2-role-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-role-v2-role-copy strong{color:var(--strong);font-size:13px}.member-role-v2-role-copy small{margin-top:3px;color:var(--muted);font-size:10px}
.member-role-v2-role-action{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--border);border-radius:7px;color:var(--muted)}.member-role-v2-role-action .app-icon{width:15px;height:15px}.member-role-v2-row.assigned .member-role-v2-role-action{border-color:var(--accent);background:var(--accent);color:#fff}
.member-role-v2-empty{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center;color:var(--muted)}.member-role-v2-empty>.app-icon{width:36px;height:36px;margin-bottom:12px;opacity:.55}.member-role-v2-empty strong{color:var(--strong);font-size:14px}.member-role-v2-empty small{margin-top:5px;font-size:11px}
.member-role-v2-footer{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 22px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--rail) 74%,var(--panel))}
.member-role-v2-footer>div{min-width:0}.member-role-v2-footer strong,.member-role-v2-footer small{display:block}.member-role-v2-footer strong{color:var(--strong);font-size:12px}.member-role-v2-footer small{margin-top:3px;color:var(--muted);font-size:10px}.member-role-v2-footer .done-member-roles{min-width:92px}
:root[data-theme="light"] .member-role-v2-profile{background:#e3e5e8}
:root[data-theme="light"] .member-role-v2-avatar-wrap>.avatar.large{border-color:#e3e5e8}
:root[data-theme="light"] .member-role-v2-status,:root[data-theme="light"] .member-role-v2-stats>div{background:#fff8}
:root[data-theme="light"] .member-role-v2-search input{background:#f2f3f5}
:root[data-theme="light"] .member-role-v2-footer{background:#f2f3f5}
@media(max-width:760px){
  .modal.modal-member-roles{width:100vw;height:100dvh;min-height:0;border-radius:0}
  .member-role-manager-v2{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
  .member-role-v2-profile{border-right:0;border-bottom:1px solid var(--border)}
  .member-role-v2-banner{height:62px}
  .member-role-v2-profile-body{display:grid;grid-template-columns:62px minmax(0,1fr) auto;grid-template-rows:auto auto;padding:0 16px 12px;column-gap:12px}
  .member-role-v2-avatar-wrap{grid-row:1/3;height:42px;margin:0}.member-role-v2-avatar-wrap>.avatar.large{top:-28px;width:62px;height:62px;border-width:5px;font-size:22px}
  .member-role-v2-kicker,.member-role-v2-status,.member-role-v2-divider,.member-role-v2-summary-head,.member-role-v2-chips,.member-role-v2-hierarchy-note{display:none}
  .member-role-v2-profile-body h2{grid-column:2;margin:4px 0 0;font-size:18px}.member-role-v2-profile-body>p{grid-column:2;font-size:11px}
  .member-role-v2-stats{grid-column:3;grid-row:1/3;align-self:center;display:flex;margin:0}.member-role-v2-stats>div{padding:7px 9px}.member-role-v2-stats strong{font-size:14px}.member-role-v2-stats small{font-size:8px}
  .member-role-v2-head{padding:17px 52px 12px 16px}.member-role-v2-head-icon{width:36px;height:36px}.member-role-v2-head h1{font-size:18px}
  .member-role-v2-toolbar{padding:12px 12px 9px}.member-role-v2-list{padding:8px 8px 12px}.member-role-v2-footer{padding:10px 12px}
}
@media(max-width:480px){
  .member-role-v2-filters button{flex:1;justify-content:center;padding-inline:5px}.member-role-v2-filters button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .member-role-v2-footer small{display:none}.member-role-v2-head p{max-width:250px}.member-role-v2-role-copy small span:last-child{display:none}
}

/* v2.56 member-list skeleton lifecycle and geometry fix. */
.members > .skeleton-surface{
  width:100%;
  height:auto;
  min-height:100%;
  box-sizing:border-box;
  margin:0;
  overflow:hidden;
}
.members > .skeleton-surface > .sk-members-region{
  width:100%;
  height:auto;
  min-height:100%;
  box-sizing:border-box;
  padding:0;
}
.members > .skeleton-surface .sk-category-line{
  margin-left:8px;
}
.members > .skeleton-surface .sk-member-row{
  width:100%;
  box-sizing:border-box;
}

/* v2.57 smart, component-scoped loading surfaces. */
#app,.sidebar-scroll,.messages,.message-feed,.profile-card,.device-list,.audit-log,.ban-list,.invite-list,.settings-list,.admin-user-feature-list,.channel-access-manager{position:relative}
.sidebar-scroll>.skeleton-overlay,.messages>.skeleton-overlay,.profile-card>.skeleton-overlay,.device-list>.skeleton-overlay,.audit-log>.skeleton-overlay,.ban-list>.skeleton-overlay{border-radius:inherit}
.skeleton-overlay-sidebar .sk-sidebar-region{height:100%;min-height:100%}
.skeleton-overlay-sidebar .sk-sidebar-region-scroll{height:100%;padding-top:0}

/* v1.9.0.28 — first-load application loader.
   This reuses the original bootstrap gate lifecycle, but paints one dedicated
   identity loader while the shell hydrates. It is never used for later navigation. */
html.app-initializing #app{visibility:hidden!important}
.app-startup-loader{
  position:fixed!important;
  inset:0!important;
  z-index:2147483000!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  background:var(--bg);
  color:var(--strong);
  cursor:progress;
  pointer-events:auto!important;
  contain:strict;
  opacity:1;
}
.app-startup-loader[hidden]{display:none!important}
.app-startup-loader.is-leaving{pointer-events:none!important;animation:app-loader-exit .18s ease-out both}
.app-loader-stage{display:grid;justify-items:center;gap:18px;transform:translateY(-2vh)}
.app-loader-emblem{position:relative;width:88px;height:88px;display:grid;place-items:center}
.app-loader-orbit{position:absolute;inset:0;animation:app-loader-orbit 1.65s cubic-bezier(.55,.12,.45,.88) infinite}
.app-loader-orbit i{position:absolute;width:9px;height:9px;border-radius:999px;background:color-mix(in srgb,var(--accent) 72%,var(--strong) 28%);box-shadow:0 0 18px color-mix(in srgb,var(--accent) 42%,transparent)}
.app-loader-orbit i:nth-child(1){left:50%;top:2px;transform:translateX(-50%)}
.app-loader-orbit i:nth-child(2){left:10px;bottom:13px;animation:app-loader-dot 1.1s ease-in-out -.22s infinite}
.app-loader-orbit i:nth-child(3){right:10px;bottom:13px;animation:app-loader-dot 1.1s ease-in-out -.55s infinite}
.app-loader-core{position:relative;z-index:1;width:52px;height:38px;border-radius:15px;display:flex;align-items:center;justify-content:center;gap:5px;background:var(--accent);box-shadow:0 10px 30px color-mix(in srgb,var(--accent) 22%,transparent);animation:app-loader-core 1.1s ease-in-out infinite}
.app-loader-core i{display:block;width:5px;height:14px;border-radius:999px;background:#fff;transform-origin:center;animation:app-loader-bar .9s ease-in-out infinite}
.app-loader-core i:nth-child(2){animation-delay:-.6s}
.app-loader-core i:nth-child(3){animation-delay:-.3s}
.app-loader-name{max-width:min(360px,76vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:13px;font-weight:700;letter-spacing:.02em;text-align:center}
@keyframes app-loader-orbit{0%{transform:rotate(0deg) scale(.96)}50%{transform:rotate(180deg) scale(1.04)}100%{transform:rotate(360deg) scale(.96)}}
@keyframes app-loader-core{0%,100%{transform:scale(.96)}50%{transform:scale(1.045)}}
@keyframes app-loader-bar{0%,100%{transform:scaleY(.55);opacity:.72}50%{transform:scaleY(1);opacity:1}}
@keyframes app-loader-dot{0%,100%{transform:scale(.72);opacity:.56}50%{transform:scale(1.12);opacity:1}}
@keyframes app-loader-exit{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.015)}}
@media(prefers-reduced-motion:reduce){.app-loader-orbit,.app-loader-orbit i,.app-loader-core,.app-loader-core i{animation:none!important}.app-startup-loader.is-leaving{animation:none!important}}


/* v2.27 — independent userbar and application-style channel management */
.app-channel-create{display:flex;flex-direction:column;min-height:0;margin:-4px}
.app-channel-create-head{display:flex;align-items:center;gap:14px;padding:4px 4px 18px}
.app-channel-create-head h2{margin:0 0 4px;font-size:22px;line-height:1.15;color:var(--strong)}
.app-channel-create-head p{margin:0;color:var(--muted);font-size:13px}
.app-channel-create-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:color-mix(in srgb,var(--accent) 18%,var(--panel));color:var(--accent);flex:none}
.app-channel-create-icon .app-icon{width:24px;height:24px}
.app-channel-create-body{display:grid;gap:18px;min-height:0}
.app-channel-type-picker{display:grid;gap:6px;margin:0;padding:0;border:0}
.app-channel-type-picker legend,.app-channel-create-fields label>span:first-child{display:block;margin:0 0 8px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}
.app-channel-type-option{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) 24px;align-items:center;gap:12px;min-height:64px;padding:10px 12px;border:1px solid transparent;border-radius:8px;background:color-mix(in srgb,var(--input) 72%,transparent);cursor:pointer;transition:background-color .12s,border-color .12s}
.app-channel-type-option:hover{background:var(--hover)}
.app-channel-type-option.active{background:color-mix(in srgb,var(--accent) 12%,var(--input));border-color:color-mix(in srgb,var(--accent) 48%,transparent)}
.app-channel-type-option>input{position:absolute;opacity:0;pointer-events:none}
.app-channel-type-option>span:nth-of-type(2){display:grid;gap:3px;min-width:0}
.app-channel-type-option strong{color:var(--strong);font-size:15px}
.app-channel-type-option small{color:var(--muted);font-size:12px;line-height:1.35}
.app-channel-type-option>i{display:grid;place-items:center;width:20px;height:20px;border:2px solid var(--muted);border-radius:50%;color:transparent}
.app-channel-type-option.active>i{border-color:var(--accent);background:var(--accent);color:#fff}
.app-channel-type-option>i .app-icon{width:14px;height:14px}
.app-channel-type-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--panel) 72%,transparent);color:var(--muted)}
.app-channel-type-option.active .app-channel-type-icon{color:var(--accent)}
.app-channel-type-icon .app-icon{width:22px;height:22px}
.app-channel-create-fields{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(180px,.75fr);gap:14px}
.app-channel-create-fields label{min-width:0}
.channel-name-input{display:flex;align-items:center;min-width:0;border-radius:6px;background:var(--input);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--muted) 12%,transparent);overflow:hidden}
.channel-name-input:focus-within{box-shadow:inset 0 0 0 1px var(--accent)}
.channel-name-input>b{display:grid;place-items:center;align-self:stretch;min-width:38px;color:var(--muted);font-size:18px;font-weight:500}
.channel-name-input>.field{min-width:0;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding-left:0!important}
.channel-private-row{margin:0!important;padding:14px 2px 2px!important;background:transparent!important;border-top:1px solid var(--border)}
.app-channel-create-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:20px -24px -24px;padding:16px 24px;background:color-mix(in srgb,var(--rail) 76%,var(--panel));border-top:1px solid var(--border)}
.app-channel-create-actions .primary{margin:0!important;min-width:126px}

.app-channel-settings{display:grid;grid-template-columns:224px minmax(0,1fr);width:100%;height:min(680px,84dvh);min-height:520px;overflow:hidden;background:var(--bg)}
.modal:has(.app-channel-settings){padding:0!important}
.app-channel-settings-nav{display:flex;flex-direction:column;min-width:0;padding:48px 10px 20px 18px;background:var(--panel);overflow:auto}
.app-channel-settings-identity{display:flex;align-items:center;gap:10px;margin:0 6px 22px;padding:10px;border-radius:8px;background:color-mix(in srgb,var(--input) 58%,transparent)}
.app-channel-settings-identity>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);flex:none}
.app-channel-settings-identity .app-icon{width:19px;height:19px}
.app-channel-settings-identity>div{display:grid;gap:2px;min-width:0}
.app-channel-settings-identity strong,.app-channel-settings-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-channel-settings-identity strong{color:var(--strong)}
.app-channel-settings-identity small{color:var(--muted);font-size:11px}
.app-channel-settings-label{padding:0 10px 7px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.app-channel-settings-nav>button{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:7px 10px;border:0;border-radius:4px;background:transparent;color:var(--muted);text-align:left;cursor:pointer}
.app-channel-settings-nav>button:hover,.app-channel-settings-nav>button.active{background:var(--hover);color:var(--strong)}
.app-channel-settings-nav>button .app-icon{width:17px;height:17px;flex:none}
.app-channel-settings-nav>button.danger{margin-top:auto;color:var(--danger)}
.app-channel-settings-nav>button.danger:hover{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}
.app-channel-settings-separator{height:1px;margin:10px;background:var(--border)}
.app-channel-settings-content{position:relative;min-width:0;overflow:auto;padding:48px clamp(28px,5vw,64px) 96px}
.app-channel-settings-head{max-width:720px;margin:0 0 26px}
.app-channel-settings-head>span,.channel-access-eyebrow{display:block;margin:0 0 5px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.app-channel-settings-head h2{margin:0 0 8px;font-size:24px;color:var(--strong)}
.app-channel-settings-head p{margin:0;color:var(--muted);line-height:1.45}
.app-channel-settings-form{display:grid;gap:22px;max-width:720px}
.app-channel-settings-form>label{display:grid;gap:8px;position:relative}
.app-channel-settings-form>label>span:first-child{color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}
.app-channel-settings-form>label>small{color:var(--muted);margin-top:-4px}
.app-channel-settings-form textarea{resize:vertical;min-height:110px;padding-bottom:28px}
.channel-topic-counter{position:absolute;right:10px;bottom:8px;color:var(--muted);font-size:11px;font-weight:600}
.app-channel-setting-card{display:grid;gap:0;border:1px solid var(--border);border-radius:10px;background:var(--settings-card-bg,var(--panel));overflow:hidden}
.app-channel-setting-card>.app-switch-row{margin:0!important;padding:16px!important;background:transparent!important}
.manage-channel-access-card{display:grid!important;grid-template-columns:22px minmax(0,1fr) 18px;align-items:center;gap:12px;width:100%;min-height:60px;padding:12px 16px!important;border:0!important;border-top:1px solid var(--border)!important;border-radius:0!important;background:transparent!important;color:var(--muted)!important;text-align:left!important}
.manage-channel-access-card:hover{background:var(--hover)!important;color:var(--strong)!important}
.manage-channel-access-card>span{display:grid;gap:3px;min-width:0}
.manage-channel-access-card strong{color:var(--strong)}
.manage-channel-access-card small{color:var(--muted);font-weight:400}
.manage-channel-access-card>.app-icon{width:19px;height:19px}
.app-channel-settings-content>.settings-unsaved-bar{position:sticky;bottom:12px;margin-top:34px}

.app-channel-access{display:grid;grid-template-columns:300px minmax(0,1fr);width:100%;height:min(690px,86dvh);min-height:540px;overflow:hidden;background:var(--bg)}
.modal:has(.app-channel-access){padding:0!important;width:min(1040px,94vw)!important;max-width:1040px!important}
.channel-access-target-pane{display:flex;flex-direction:column;min-width:0;padding:46px 10px 12px;background:var(--panel);border-right:1px solid var(--border);overflow:hidden}
.channel-access-channel-identity{display:flex;align-items:center;gap:10px;margin:0 8px 14px;padding:10px;border-radius:8px;background:color-mix(in srgb,var(--input) 60%,transparent)}
.channel-access-channel-identity>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);flex:none}
.channel-access-channel-identity .app-icon{width:19px;height:19px}
.channel-access-channel-identity>div{display:grid;gap:2px;min-width:0}
.channel-access-channel-identity strong,.channel-access-channel-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.channel-access-channel-identity small{color:var(--muted);font-size:11px}
.channel-access-search{display:flex;align-items:center;gap:8px;margin:0 8px 10px;padding:0 10px;height:36px;border-radius:4px;background:var(--input);color:var(--muted)}
.channel-access-search:focus-within{box-shadow:0 0 0 1px var(--accent)}
.channel-access-search .app-icon{width:16px;height:16px;flex:none}
.channel-access-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--strong)}
.channel-access-target-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 8px 10px;padding:3px;border-radius:6px;background:color-mix(in srgb,var(--input) 72%,transparent)}
.channel-access-target-tabs button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:32px;border:0;border-radius:4px;background:transparent;color:var(--muted);cursor:pointer}
.channel-access-target-tabs button.active{background:var(--panel);color:var(--strong);box-shadow:0 1px 2px #0004}
.channel-access-target-tabs b{font-size:10px;padding:1px 5px;border-radius:999px;background:color-mix(in srgb,var(--muted) 18%,transparent)}
.channel-access-target-list{flex:1;min-height:0;overflow:auto;padding:0 4px 8px}
.channel-access-target{display:grid;grid-template-columns:34px minmax(0,1fr) 24px;align-items:center;gap:10px;width:100%;min-height:48px;padding:6px 8px;border:0;border-radius:5px;background:transparent;color:var(--muted);text-align:left;cursor:pointer}
.channel-access-target:hover{background:var(--hover);color:var(--strong)}
.channel-access-target.active{background:color-mix(in srgb,var(--accent) 18%,var(--hover));color:var(--strong)}
.channel-access-target>span:nth-child(2){display:grid;gap:2px;min-width:0}
.channel-access-target strong,.channel-access-target small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.channel-access-target small{color:var(--muted);font-size:11px}
.channel-access-target-avatar{display:grid;place-items:center;width:34px;height:34px}
.channel-access-target-avatar>.avatar{width:32px;height:32px}
.channel-access-target-avatar>i,.channel-access-selected-icon>i{display:block;width:16px;height:16px;border-radius:50%;background:var(--role-color,#99aab5);box-shadow:0 0 0 5px color-mix(in srgb,var(--role-color,#99aab5) 14%,transparent)}
.channel-access-lock,.channel-access-state{display:grid;place-items:center;width:22px;height:22px;border-radius:50%}
.channel-access-lock{color:var(--muted)}
.channel-access-lock .app-icon,.channel-access-state .app-icon{width:14px;height:14px}
.channel-access-state.allow{background:color-mix(in srgb,var(--green) 18%,transparent);color:var(--green)}
.channel-access-state.deny{background:color-mix(in srgb,var(--danger) 18%,transparent);color:var(--danger)}
.channel-access-state.inherit{background:color-mix(in srgb,var(--muted) 15%,transparent);color:var(--muted)}
.channel-access-empty{padding:28px 14px;color:var(--muted);text-align:center;font-size:13px}
.channel-access-detail{position:relative;min-width:0;overflow:auto;padding:48px clamp(28px,5vw,56px) 96px}
.channel-access-detail-head{max-width:680px;margin:0 0 22px}
.channel-access-detail-head h2{margin:0 0 8px;font-size:23px;color:var(--strong)}
.channel-access-detail-head p{margin:0;color:var(--muted);line-height:1.45}
.channel-access-selected-target{display:flex;align-items:center;gap:12px;max-width:680px;margin:0 0 18px;padding:12px 14px;border:1px solid var(--border);border-radius:9px;background:var(--settings-card-bg,var(--panel))}
.channel-access-selected-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:color-mix(in srgb,var(--input) 72%,transparent);flex:none}
.channel-access-selected-icon>.avatar{width:42px;height:42px}
.channel-access-selected-target>span:nth-child(2){display:grid;gap:3px;min-width:0}
.channel-access-selected-target strong,.channel-access-selected-target small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.channel-access-selected-target small{color:var(--muted)}
.channel-access-hierarchy-badge{display:flex!important;align-items:center;gap:5px;margin-left:auto;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--yellow) 14%,transparent);color:var(--yellow);font-size:11px;font-weight:700;white-space:nowrap}
.channel-access-hierarchy-badge .app-icon{width:13px;height:13px}
.channel-access-permission-card{max-width:680px;border:1px solid var(--border);border-radius:10px;background:var(--settings-card-bg,var(--panel));overflow:hidden}
.channel-access-permission-copy{display:flex;gap:13px;padding:18px}
.channel-access-permission-copy h3{margin:0 0 5px;color:var(--strong)}
.channel-access-permission-copy p{margin:0;color:var(--muted);line-height:1.4}
.channel-access-permission-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);flex:none}
.channel-access-permission-icon .app-icon{width:21px;height:21px}
.channel-access-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 18px 18px}
.channel-access-choice{display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:8px;min-height:76px;padding:10px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--input) 56%,transparent);color:var(--muted);text-align:left;cursor:pointer}
.channel-access-choice:hover:not(:disabled){background:var(--hover);color:var(--strong)}
.channel-access-choice>span{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:color-mix(in srgb,var(--muted) 14%,transparent)}
.channel-access-choice>span .app-icon{width:16px;height:16px}
.channel-access-choice strong{color:var(--strong);font-size:13px}
.channel-access-choice small{font-size:10px;line-height:1.3}
.channel-access-choice.active.inherit{border-color:var(--muted)}
.channel-access-choice.active.allow{border-color:var(--green);background:color-mix(in srgb,var(--green) 10%,var(--input))}
.channel-access-choice.active.allow>span{background:var(--green);color:#fff}
.channel-access-choice.active.deny{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--input))}
.channel-access-choice.active.deny>span{background:var(--danger);color:#fff}
.channel-access-choice:disabled{opacity:.52;cursor:not-allowed}
.channel-access-resolution-note,.channel-access-hierarchy-notice{display:flex;align-items:flex-start;gap:9px;padding:12px 18px;border-top:1px solid var(--border);color:var(--muted);font-size:12px;line-height:1.4}
.channel-access-hierarchy-notice{color:var(--yellow);background:color-mix(in srgb,var(--yellow) 7%,transparent)}
.channel-access-resolution-note .app-icon,.channel-access-hierarchy-notice .app-icon{width:16px;height:16px;flex:none;margin-top:1px}
.channel-access-detail>.settings-unsaved-bar{position:sticky;bottom:10px;margin-top:28px}
.channel-access-empty-detail,.channel-access-load-error{display:grid;place-items:center;min-height:320px;color:var(--muted);text-align:center}

@media(max-width:820px){
 .app-channel-settings{grid-template-columns:190px minmax(0,1fr)}
 .app-channel-access{grid-template-columns:250px minmax(0,1fr)}
 .channel-access-choice-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
 .app-channel-create-fields{grid-template-columns:1fr}
 .app-channel-create-actions{margin-inline:-16px;padding-inline:16px;padding-bottom:max(16px,env(safe-area-inset-bottom))}
 .app-channel-settings{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0}
 .app-channel-settings-nav{display:flex;flex-direction:row;align-items:center;gap:4px;padding:max(10px,env(safe-area-inset-top)) 56px 10px 10px;overflow-x:auto;overflow-y:hidden}
 .app-channel-settings-identity,.app-channel-settings-label,.app-channel-settings-separator{display:none}
 .app-channel-settings-nav>button{width:auto;min-width:max-content;flex:none}
 .app-channel-settings-nav>button.danger{margin:0 0 0 auto}
 .app-channel-settings-content{padding:24px 16px max(90px,env(safe-area-inset-bottom))}
 .app-channel-access{grid-template-columns:1fr;grid-template-rows:minmax(210px,38%) minmax(0,1fr);height:100%;min-height:0}
 .channel-access-target-pane{padding:max(10px,env(safe-area-inset-top)) 10px 8px;border-right:0;border-bottom:1px solid var(--border)}
 .channel-access-channel-identity{margin-right:48px}
 .channel-access-target-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}
 .channel-access-detail{padding:22px 14px max(90px,env(safe-area-inset-bottom))}
 .channel-access-hierarchy-badge{display:none!important}
}
@media(max-width:480px){
 .channel-access-target-list{grid-template-columns:1fr}
 .app-channel-type-option{grid-template-columns:36px minmax(0,1fr) 20px;padding-inline:9px}
 .app-channel-type-icon{width:36px;height:36px}
}

/* v2.27.1 — protect new channel grids from legacy modal-wide flex rules */
.modal-backdrop>.modal.modal-wide>.app-channel-settings{display:grid!important;flex-direction:initial!important}
.app-channel-access{max-width:none!important}
.modal-backdrop>.modal.modal-wide:has(.app-channel-access){width:min(1040px,calc(100vw - 48px))!important;max-width:1040px!important}
.channel-access-detail-body{min-height:100%}
@media(max-width:700px){
 .modal-backdrop>.modal.modal-wide>.app-channel-settings{display:grid!important}
 .modal-backdrop>.modal.modal-wide:has(.app-channel-access){width:100%!important;max-width:100%!important}
}


/* v2.60 — accurate voice broadcast badges and application-wide activation switches. */
.voice-live-badge[hidden]{display:none!important}
.admin-feature-toggle:has(input:disabled) .app-toggle{opacity:.5}

/* v2.62 — single-line custom-status truncation without parent layout overrides. */
.custom-status-text{
  display:block;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.profile-custom-status>.custom-status-text,.profile-preview-status>.custom-status-text{
  flex:1 1 auto;
}
.member-identity{min-width:0}

/* v2.63 — one-line username and username#tag truncation without parent layout overrides. */
.username-text{
  display:block;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.username-line,
.member-name-line,
.profile-name-heading{
  min-width:0;
  max-width:100%;
  overflow:hidden;
  white-space:nowrap;
}
.username-line{
  display:flex;
  align-items:baseline;
}
.username-line>.username-text{
  flex:1 1 auto;
}
.username-tag-text{
  display:block;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.username-tag-text>.username-name-text,
.username-tag-text>:is(.user-tag,.profile-tag,.message-tag,.dm-tag){
  display:inline;
  margin:0;
  white-space:nowrap;
}
.member-name-line,
.profile-name-heading{
  display:flex;
  align-items:center;
}
.member-name-line>.username-text,
.profile-name-heading>.username-text{
  flex:1 1 auto;
}
.member-name-line>.server-owner-crown,
.profile-name-heading>.app-owner-badge{
  flex:0 0 auto;
}
.group-friend>.username-line,
.mention-autocomplete button>span:last-child,
.profile-preview-body>.username-line,
.account-identity>.username-line{
  min-width:0;
}
.group-friend>.username-line{
  flex:1 1 auto;
}
.video-label.username-text{
  max-width:calc(100% - 24px);
}
.broadcast-placeholder>.username-text{
  max-width:calc(100% - 24px);
}

/* Message author rows keep timestamps visible while long names ellipsize. */
.msg-head{
  display:flex;
  align-items:baseline;
  min-width:0;
  overflow:hidden;
  white-space:nowrap;
}
.message-username-line{
  display:flex;
  align-items:baseline;
  flex:0 1 auto;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  white-space:nowrap;
}
.message-username-line>.username-text{
  flex:1 1 auto;
}
.msg-head>.time,
.msg-head>.edited{
  flex:0 0 auto;
}

/* RTC permission pre-prompt: scoped to the permission dialog only. */
.rtc-permission-prompt .messagebox-symbol .app-icon{width:22px;height:22px;stroke-width:2}
.rtc-permission-details{display:grid;gap:10px;margin:4px 0 2px;padding:12px;border:1px solid var(--settings-border);border-radius:8px;background:color-mix(in srgb,var(--panel) 72%,transparent)}
.rtc-permission-row{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:10px;color:var(--text);font-size:13px;line-height:18px}
.rtc-permission-row .app-icon{width:18px;height:18px;color:var(--accent);margin-top:1px}
.rtc-permission-error{margin:12px 0 0!important;padding:10px 12px;border-radius:6px;background:color-mix(in srgb,var(--danger) 14%,transparent);color:#f23f42!important;font-size:13px;line-height:18px}
.rtc-permission-error[hidden]{display:none}


/* v2.54 — application-style real-time voice activity indicators. */
.voice-users .voice-presence-user.speaking{opacity:1;color:var(--strong)}
.voice-users .voice-presence-user.speaking .avatar{
 box-shadow:0 0 0 2px var(--green),0 0 12px color-mix(in srgb,var(--green) 38%,transparent);
}
.voice-users .voice-presence-user.speaking .voice-presence-name{color:var(--green)!important;font-weight:700}
.voice-stage .video-tile.speaking{
 border-color:var(--green)!important;
 box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 92%,#fff),0 12px 34px color-mix(in srgb,var(--green) 22%,#000)!important;
}
.voice-stage .video-tile.speaking::after{
 content:"";position:absolute;right:12px;top:12px;width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 22%,transparent),0 0 14px var(--green);z-index:4;pointer-events:none;
}

/* v2.44 — application-style voice channel controls, stage and Voice & Video settings */
.voice-stage{
  --voice-stage-gap:12px;
  display:grid!important;
  grid-template-rows:56px minmax(0,1fr) 78px!important;
  gap:0!important;
  padding:0!important;
  background:color-mix(in srgb,var(--bg) 92%,#0b0c0e)!important;
  overflow:hidden!important;
  isolation:isolate;
}
.voice-stage-head{
  min-width:0;
  height:56px;
  padding:0 14px!important;
  border-bottom:1px solid color-mix(in srgb,var(--muted) 16%,transparent);
  background:color-mix(in srgb,var(--panel) 96%,transparent);
  box-shadow:0 2px 12px #0002;
  z-index:5;
}
.voice-stage-title,.voice-stage-toolbar,.voice-view-switch{display:flex!important;align-items:center!important;min-width:0}
.voice-stage-title{gap:10px;overflow:hidden}
.voice-stage-channel-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent);flex:none}
.voice-stage-title>div{min-width:0;display:flex;flex-direction:column!important}
.voice-stage-title strong,.voice-stage-title small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.voice-stage-title strong{font-size:15px!important}
.voice-stage-title small{font-size:12px}
.voice-stage-connection{display:inline-flex;align-items:center;gap:6px;margin-left:5px;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--green) 14%,transparent);color:var(--green);font-size:11px;font-weight:800;white-space:nowrap;flex:none}
.voice-stage-connection i{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 18%,transparent)}
.voice-stage-connection[data-state="connecting"]{color:var(--yellow)}
.voice-stage-connection[data-state="error"],.voice-stage-connection[data-state="disconnected"]{color:var(--danger)}
.voice-stage-toolbar{gap:6px;margin-left:auto}
.voice-view-switch{padding:3px;border-radius:8px;background:color-mix(in srgb,var(--rail) 84%,transparent)}
.voice-stage-toolbar .icon-btn{position:relative;width:34px;height:34px;display:grid;place-items:center;padding:0;border:1px solid transparent;color:var(--muted)}
.voice-stage-toolbar .icon-btn:hover,.voice-stage-toolbar .icon-btn.active{color:var(--strong);background:var(--hover);border-color:color-mix(in srgb,var(--muted) 12%,transparent)}
.voice-stage-participant-count{position:absolute;right:-4px;top:-4px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:9px;line-height:1;border:2px solid var(--panel)}
.voice-stage-body{min-width:0;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 250px;background:#0f1012}
.voice-stage.participants-hidden .voice-stage-body{grid-template-columns:minmax(0,1fr)}
.voice-stage.participants-hidden .voice-participant-panel{display:none}
.voice-canvas{min-width:0;min-height:0;overflow:hidden;padding:12px;background:radial-gradient(circle at 50% 35%,#24262b 0,#17181b 48%,#101113 100%)}
.voice-stage .voice-grid{
  width:100%;height:100%;min-height:0;
  padding:0!important;
  overflow:auto;
  align-content:center;
  scrollbar-gutter:stable;
}
.voice-stage[data-view="grid"] .voice-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))!important;grid-auto-rows:minmax(190px,1fr)!important;gap:var(--voice-stage-gap)!important}
.voice-stage[data-view="focus"] .voice-grid{display:flex!important;align-content:flex-end;align-items:stretch;justify-content:center;flex-wrap:wrap;gap:10px!important}
.voice-stage[data-view="focus"] .video-tile.focused{order:-1;flex:1 0 100%;width:100%;height:calc(100% - 116px);min-height:240px;max-height:none!important;aspect-ratio:auto;grid-column:auto!important}
.voice-stage[data-view="focus"] .video-tile:not(.focused){flex:0 0 172px;width:172px;height:96px;min-height:96px;max-height:96px;aspect-ratio:16/9}
.voice-stage .video-tile{
  position:relative!important;
  min-width:0;min-height:190px;
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:10px!important;
  border:2px solid transparent!important;
  outline:0!important;
  background:#202225!important;
  box-shadow:0 8px 24px #0004!important;
  cursor:pointer;
  transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease;
}
.voice-stage .video-tile:hover{border-color:#4e5058!important}
.voice-stage .video-tile.focused{border-color:color-mix(in srgb,var(--accent) 75%,#fff)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 28%,transparent),0 14px 35px #0006!important}
.voice-stage .video-tile.speaking{border-color:var(--green)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 25%,transparent),0 12px 30px #0006!important}
.voice-stage .video-tile video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#050505}
.voice-stage .video-tile.screen-active video{object-fit:contain}
.voice-stage .video-tile video.mirror{transform:scaleX(-1)}
.voice-stage .video-tile[hidden],.voice-stage.hide-self-view .video-tile.local{display:none!important}
.voice-participant-placeholder{position:absolute;inset:0;display:flex!important;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;background:radial-gradient(circle at center,color-mix(in srgb,var(--accent) 9%,#25272b),#1b1c1f 70%)}
.voice-participant-placeholder[hidden]{display:none!important}
.voice-participant-placeholder .avatar.large{width:82px;height:82px;font-size:28px;box-shadow:0 0 0 5px #1115}
.video-tile.speaking .voice-participant-placeholder .avatar.large{box-shadow:0 0 0 4px var(--green),0 0 0 8px color-mix(in srgb,var(--green) 20%,transparent)}
.voice-participant-placeholder strong{max-width:90%;font-size:15px;color:#fff}
.voice-participant-placeholder .broadcast-status{font-size:12px;color:#b5bac1}
.voice-tile-top,.voice-tile-bottom{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:8px;z-index:3;pointer-events:none;opacity:0;transition:opacity .15s ease}
.video-tile:hover .voice-tile-top,.video-tile:hover .voice-tile-bottom,.video-tile:focus-within .voice-tile-top,.video-tile:focus-within .voice-tile-bottom,.video-tile.speaking .voice-tile-bottom{opacity:1}
.voice-tile-top{top:0;padding:10px;background:linear-gradient(#000a,transparent)}
.voice-tile-bottom{bottom:0;padding:18px 10px 10px;background:linear-gradient(transparent,#000c)}
.voice-tile-menu{pointer-events:auto;margin-left:auto;width:30px;height:30px;border:0;border-radius:50%;display:grid;place-items:center;background:#111b;color:#fff;cursor:pointer}
.voice-live-badge{padding:3px 6px;border-radius:4px;background:#da373c;color:#fff;font-size:10px;font-weight:900;letter-spacing:.04em}
.voice-stage .video-label{position:static!important;min-width:0;max-width:75%;padding:4px 7px!important;border-radius:5px;background:#111b!important;color:#fff;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.voice-tile-flags,.voice-participant-row-flags{display:flex;align-items:center;gap:5px;color:#fff}
.voice-tile-flags span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#111c}
.voice-participant-panel{min-width:0;min-height:0;border-left:1px solid #2d2f34;background:color-mix(in srgb,var(--panel) 96%,#000);display:flex;flex-direction:column}
.voice-participant-panel>header{height:50px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid color-mix(in srgb,var(--muted) 13%,transparent)}
.voice-participant-panel>header span{min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:grid;place-items:center;background:var(--hover);color:var(--muted);font-size:11px}
.voice-participant-list{min-height:0;overflow:auto;padding:8px}
.voice-participant-row{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px;border:0;border-radius:6px;background:transparent;text-align:left;color:var(--muted);cursor:pointer}
.voice-participant-row:hover{background:var(--hover);color:var(--strong)}
.voice-participant-row>span:nth-child(2){min-width:0;display:flex;flex-direction:column;gap:2px}
.voice-participant-row strong,.voice-participant-row small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.voice-participant-row strong{color:var(--strong);font-size:13px}.voice-participant-row small{font-size:11px;color:var(--muted)}
.voice-participant-row.speaking strong{color:var(--green)}
.voice-participant-row.speaking .avatar{box-shadow:0 0 0 2px var(--green)}
.voice-stage .callbar{
  position:relative;
  width:100%!important;height:78px!important;min-height:78px!important;
  margin:0!important;padding:10px 16px!important;
  border:0!important;border-top:1px solid color-mix(in srgb,var(--muted) 14%,transparent)!important;border-radius:0!important;
  display:flex!important;align-items:center;justify-content:center;gap:14px!important;
  background:color-mix(in srgb,var(--panel) 97%,#000)!important;
  box-shadow:0 -8px 24px #0003!important;
  backdrop-filter:none!important;
}
.callbar-group{display:flex;align-items:center;gap:8px}
.voice-stage .callbar button{width:auto!important;height:50px!important;min-width:58px;padding:0 13px!important;border-radius:12px!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:#35373c!important;border:1px solid #ffffff0c!important;color:#f2f3f5!important}
.voice-stage .callbar button .app-icon{width:20px;height:20px}
.voice-stage .callbar button span{font-size:10px;font-weight:700;line-height:1}
.voice-stage .callbar button:hover{background:#404249!important}
.voice-stage .callbar button.active,.voice-stage .callbar button.disabled{background:#f2f3f5!important;color:#1e1f22!important}
.voice-stage.push-to-talk-active .callbar .mute{background:var(--green)!important;color:#fff!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 22%,transparent)}
.voice-stage .callbar .hangup{margin-left:6px;background:var(--danger)!important;color:#fff!important;min-width:78px}
.voice-stage .callbar .hangup:hover{background:#b92f34!important}

/* Per-channel voice controls */
.voice-channel-options{padding:18px!important}
.voice-channel-options-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.voice-channel-options-head>span{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.voice-channel-options-head>div{display:flex;flex-direction:column;gap:3px}.voice-channel-options-head small{color:var(--muted)}
.voice-channel-options-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.voice-channel-options-grid label{min-width:0;margin:0;padding:14px;border-radius:8px;background:color-mix(in srgb,var(--input) 88%,transparent);border:1px solid color-mix(in srgb,var(--muted) 12%,transparent)}
.voice-channel-options-grid label>span{display:block;margin-bottom:8px;color:var(--strong);font-weight:700;text-transform:none;font-size:13px}
.voice-channel-options-grid label>small{display:block;margin-top:7px;color:var(--muted);font-weight:400;text-transform:none;line-height:1.35}
.voice-channel-routing-summary{min-height:42px;display:flex;align-items:center;gap:10px;color:var(--accent)}
.voice-channel-routing-summary>span{min-width:0;display:flex;flex-direction:column}.voice-channel-routing-summary strong{color:var(--strong)}

/* Voice & Video settings */
.voice-settings-head{align-items:flex-start!important}.voice-settings-head>div{min-width:0}.voice-settings-head p{margin:5px 0 0;color:var(--muted)}
.user-settings-content .voice-settings-card{margin-bottom:14px;padding:20px;border-radius:10px}
.voice-settings-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
.voice-settings-card-head h3{margin:0 0 5px}.voice-settings-card-head p{margin:0}
.voice-settings-card-head button{display:flex;align-items:center;gap:7px;white-space:nowrap}
.voice-device-grid-audio{grid-template-columns:repeat(2,minmax(0,1fr))}
.voice-volume-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.voice-volume-grid>div{min-width:0}
.voice-settings-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:18px}
.voice-mic-meter{position:relative;width:100%;height:12px;margin:16px 0 8px;overflow:hidden;border-radius:999px;background:linear-gradient(90deg,#23a55a 0 58%,#f0b232 58% 78%,#da373c 78%);box-shadow:inset 0 0 0 1px #0005}
.voice-mic-meter::after{content:'';position:absolute;inset:0;background:color-mix(in srgb,var(--rail) 92%,transparent);transform:translateX(var(--voice-meter,0));pointer-events:none}
.voice-mic-meter-fill{position:absolute;z-index:2;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,#fff8,#fff0);mix-blend-mode:overlay;transition:width .06s linear}
.voice-mic-meter i{position:relative;z-index:3;display:inline-block;width:20%;height:100%;border-right:1px solid #0005}
.voice-mic-level{display:block;color:var(--muted)}
.voice-input-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.voice-mode-card{margin:0!important;padding:0!important;text-transform:none!important;font-size:inherit!important;color:inherit!important;cursor:pointer}
.voice-mode-card>input{position:absolute;opacity:0;pointer-events:none}
.voice-mode-card>span{height:100%;display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;padding:14px;border:1px solid color-mix(in srgb,var(--muted) 15%,transparent);border-radius:8px;background:color-mix(in srgb,var(--input) 82%,transparent)}
.voice-mode-card .app-icon{grid-row:1/3;align-self:center;color:var(--muted)}
.voice-mode-card strong{color:var(--strong)}.voice-mode-card small{color:var(--muted);font-weight:400;line-height:1.35}
.voice-mode-card:hover>span,.voice-mode-card.selected>span{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--input))}.voice-mode-card.selected .app-icon{color:var(--accent)}
.voice-ptt-settings{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;margin-bottom:12px;border-radius:8px;background:var(--input)}
.voice-ptt-settings[hidden]{display:none!important}.voice-ptt-settings>span{display:flex;flex-direction:column;gap:2px}.voice-ptt-settings small{color:var(--muted)}
.voice-ptt-key{min-width:120px}.voice-ptt-key.recording{border-color:var(--danger);color:var(--danger)}
.voice-sensitivity-control{margin-top:15px;transition:opacity .15s}.voice-sensitivity-control.disabled{opacity:.48}.voice-sensitivity-scale{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}
.voice-settings-card .app-switch-row{margin:0;padding:13px 0;border-top:1px solid color-mix(in srgb,var(--muted) 12%,transparent)}
.voice-settings-card .app-switch-row:first-of-type{border-top:0}
.voice-video-settings>label:not(.app-switch-row){display:block;margin-top:14px}
.voice-camera-preview{position:relative;margin:12px 0 4px;aspect-ratio:16/9;overflow:hidden;border-radius:10px;background:#151619;border:1px solid color-mix(in srgb,var(--muted) 14%,transparent);display:grid;place-items:center}
.voice-camera-preview video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}.voice-camera-preview video.mirror{transform:scaleX(-1)}
.voice-camera-preview.active video{display:block}.voice-camera-preview.active>div{display:none}
.voice-camera-preview>div{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--muted)}.voice-camera-preview>div .app-icon{width:30px;height:30px}.voice-camera-preview>div strong{color:var(--strong)}
.voice-reset-card{display:flex;align-items:center;justify-content:space-between;gap:20px}.voice-reset-card>div{display:flex;flex-direction:column;gap:3px}.voice-reset-card small{color:var(--muted)}

@media(max-width:900px){
 .voice-stage-body{grid-template-columns:minmax(0,1fr) 220px}
 .voice-stage[data-view="grid"] .voice-grid{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))!important}
 .voice-channel-options-grid,.voice-volume-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
 .voice-stage{grid-template-rows:50px minmax(0,1fr) 66px!important}
 .voice-stage-head{height:50px;padding:0 8px!important}.voice-stage-title small,.voice-stage-connection{display:none}.voice-stage-toolbar{gap:2px}.voice-stage-toolbar .icon-btn{width:31px;height:31px}
 .voice-stage-body{display:block;position:relative}.voice-canvas{height:100%;padding:6px}
 .voice-participant-panel{position:absolute;inset:0 0 0 auto;width:min(86vw,290px);z-index:8;box-shadow:-12px 0 34px #0008;transition:transform .18s ease}
 .voice-stage.participants-hidden .voice-participant-panel{display:flex;transform:translateX(105%);pointer-events:none}
 .voice-stage[data-view="grid"] .voice-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:minmax(130px,1fr)!important;gap:6px!important}
 .voice-stage[data-view="focus"] .video-tile.focused{height:calc(100% - 86px);min-height:180px}.voice-stage[data-view="focus"] .video-tile:not(.focused){flex-basis:132px;width:132px;height:74px;min-height:74px}
 .voice-stage .video-tile{min-height:130px;border-radius:8px!important}.voice-participant-placeholder .avatar.large{width:58px;height:58px}.voice-participant-placeholder{padding:10px}.voice-participant-placeholder strong{font-size:12px}.broadcast-status{display:none}
 .voice-stage .callbar{height:66px!important;min-height:66px!important;padding:7px 6px!important;gap:6px!important;justify-content:space-around}.callbar-group{gap:4px}.voice-stage .callbar button{min-width:42px!important;width:42px!important;height:46px!important;padding:0!important;border-radius:12px!important}.voice-stage .callbar button span{font-size:8px}.voice-stage .callbar .hangup{min-width:48px!important;margin-left:0}
 .voice-device-grid-audio,.voice-input-mode-grid{grid-template-columns:1fr}.voice-settings-card-head{align-items:flex-start}.voice-settings-card-head button{flex:none}.voice-reset-card{align-items:flex-start;flex-direction:column}.voice-reset-card button{width:100%}
}
.voice-stage-quality{display:inline-flex;align-items:center;margin-left:2px;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--muted) 10%,transparent);color:var(--muted);font-size:10px;font-weight:800;white-space:nowrap}
@media(max-width:900px){.voice-stage-quality{display:none}}
.voice-stage-quality{display:inline-flex;align-items:center;margin-left:2px;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--muted) 10%,transparent);color:var(--muted);font-size:10px;font-weight:800;white-space:nowrap}
@media(max-width:900px){.voice-stage-quality{display:none}}

/* v2.45 — application-shell voice stage containment and responsive fit. */
body > .voice-stage{
  position:fixed!important;
  inset:var(--layout-header,48px) 0 0 calc(var(--layout-rail,72px) + var(--layout-sidebar,240px))!important;
  width:auto!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  min-width:0!important;
  min-height:0!important;
  border-radius:0!important;
  grid-template-rows:56px minmax(0,1fr) 78px!important;
  background:var(--bg)!important;
  box-shadow:none!important;
  contain:layout paint;
}
body > .voice-stage:fullscreen{
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
}
body > .voice-stage .voice-stage-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  background:var(--top)!important;
}
body > .voice-stage .voice-stage-title{
  flex:1 1 auto!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
}
body > .voice-stage .voice-stage-title>div{
  flex:0 1 auto!important;
  min-width:72px!important;
  max-width:min(32vw,360px)!important;
}
body > .voice-stage .voice-stage-connection,
body > .voice-stage .voice-stage-quality{flex:0 0 auto!important}
body > .voice-stage .voice-stage-toolbar{
  flex:0 0 auto!important;
  min-width:0!important;
  max-width:48%!important;
  overflow:hidden!important;
  white-space:nowrap;
}
body > .voice-stage .voice-view-switch{flex:0 0 auto!important}
body > .voice-stage .voice-stage-body{
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  grid-template-columns:minmax(0,1fr) clamp(216px,22vw,268px)!important;
  overflow:hidden!important;
  background:var(--bg)!important;
}
body > .voice-stage.participants-hidden .voice-stage-body{grid-template-columns:minmax(0,1fr)!important}
body > .voice-stage .voice-canvas{
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  padding:clamp(8px,1.2vw,14px)!important;
  background:radial-gradient(circle at 50% 34%,color-mix(in srgb,var(--panel) 82%,#202227),color-mix(in srgb,var(--bg) 92%,#0c0d0f) 72%)!important;
}
body > .voice-stage[data-view="grid"] .voice-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr))!important;
  grid-auto-rows:minmax(168px,1fr)!important;
  align-content:stretch!important;
}
body > .voice-stage[data-view="focus"] .voice-grid{
  min-width:0!important;
  min-height:0!important;
  overflow:auto!important;
}
body > .voice-stage[data-view="focus"] .video-tile.focused{
  min-width:0!important;
  height:calc(100% - 108px)!important;
  min-height:200px!important;
}
body > .voice-stage[data-view="focus"] .video-tile:not(.focused){
  flex:0 0 clamp(132px,16vw,178px)!important;
  width:clamp(132px,16vw,178px)!important;
  height:auto!important;
  min-height:74px!important;
  max-height:100px!important;
}
body > .voice-stage .video-tile{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:168px!important;
}
body > .voice-stage .voice-participant-panel{
  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
  background:var(--panel)!important;
  overflow:hidden!important;
}
body > .voice-stage .voice-participant-list{scrollbar-gutter:stable}
body > .voice-stage .callbar{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:none;
  background:var(--panel)!important;
}
body > .voice-stage .callbar::-webkit-scrollbar{display:none}
body > .voice-stage .callbar-group{display:flex!important;align-items:center!important;justify-content:center!important;min-width:max-content!important}
body > .voice-stage .callbar button{flex:0 0 auto!important}

/* Keep voice-channel and personal voice settings inside their application surfaces. */
.voice-channel-options,.voice-settings-card{max-width:100%!important;min-width:0!important;overflow:hidden}
.voice-channel-options-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr))!important;
  align-items:stretch!important;
}
.voice-channel-options-grid label,.voice-channel-options-grid .field,
.voice-device-grid,.voice-device-grid .field,.voice-volume-grid,.voice-input-mode-grid{min-width:0!important;max-width:100%!important}
.voice-channel-options-grid .field{width:100%!important}
.voice-channel-routing-summary{min-width:0!important;max-width:100%!important;overflow:hidden!important}
.voice-channel-routing-summary>span{overflow:hidden!important}
.voice-channel-routing-summary strong,.voice-channel-routing-summary small{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.voice-channel-routing-summary small{white-space:normal}
.voice-device-grid-audio,.voice-volume-grid,.voice-input-mode-grid{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))!important}
.voice-settings-card-head>div{min-width:0!important}
.voice-settings-card-head h3,.voice-settings-card-head p{overflow-wrap:anywhere}

@media (min-width:701px) and (max-width:1000px){
  body > .voice-stage{
    inset:var(--layout-header,48px) 0 0 calc(var(--layout-rail,64px) + var(--layout-sidebar,224px))!important;
  }
  body > .voice-stage .voice-stage-body{grid-template-columns:minmax(0,1fr) 220px!important}
  body > .voice-stage .voice-stage-title>div{max-width:min(28vw,250px)!important}
  body > .voice-stage .voice-stage-quality{display:none!important}
  body > .voice-stage[data-view="grid"] .voice-grid{grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr))!important}
}

@media (max-width:820px){
  body > .voice-stage .voice-stage-toolbar{max-width:46%!important;gap:2px!important}
  body > .voice-stage .voice-stage-toolbar .icon-btn{width:32px!important;height:32px!important}
  body > .voice-stage .voice-stage-quality{display:none!important}
  body > .voice-stage .callbar button{min-width:50px!important;padding-inline:9px!important}
}

/* v2.46 — authoritative application voice-stage shell and media layout. */
body > .voice-stage{
  container-name:voice-stage;
  container-type:inline-size;
  display:grid!important;
  grid-template-rows:54px minmax(0,1fr) 72px!important;
  min-width:0!important;
  min-height:0!important;
  overflow:hidden!important;
  background:var(--bg)!important;
}
@media(min-width:701px){
  body.voice-stage-open .header,
  body.voice-stage-open .main,
  body.voice-stage-open .members{visibility:hidden!important;pointer-events:none!important}
  body > .voice-stage{
    inset:0 0 0 calc(var(--layout-rail,72px) + var(--layout-sidebar,240px))!important;
  }
}
body > .voice-stage .voice-stage-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  height:54px!important;
  min-height:0!important;
  padding:0 12px!important;
  overflow:hidden!important;
  background:var(--top)!important;
  border-bottom:1px solid color-mix(in srgb,var(--muted) 16%,transparent)!important;
}
body > .voice-stage .voice-stage-title{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
  overflow:hidden!important;
}
body > .voice-stage .voice-stage-channel-icon{flex:0 0 32px!important;width:32px!important;height:32px!important;border-radius:9px!important}
body > .voice-stage .voice-stage-title>div{flex:1 1 auto!important;min-width:0!important;max-width:none!important;overflow:hidden!important}
body > .voice-stage .voice-stage-title strong,
body > .voice-stage .voice-stage-title small{display:block!important;max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body > .voice-stage .voice-stage-title strong{font-size:14px!important;line-height:17px!important}
body > .voice-stage .voice-stage-title small{font-size:11px!important;line-height:14px!important}
body > .voice-stage .voice-stage-connection,
body > .voice-stage .voice-stage-quality{flex:0 0 auto!important;margin-left:0!important}
body > .voice-stage .voice-stage-toolbar{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:4px!important;min-width:0!important;max-width:none!important;overflow:visible!important}
body > .voice-stage .voice-stage-toolbar .icon-btn{flex:0 0 32px!important;width:32px!important;min-width:32px!important;height:32px!important;padding:0!important}
body > .voice-stage .voice-stage-body{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) clamp(218px,21vw,270px)!important;
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  overflow:hidden!important;
  background:var(--bg)!important;
}
body > .voice-stage.participants-hidden .voice-stage-body{grid-template-columns:minmax(0,1fr)!important}
body > .voice-stage.participants-hidden .voice-participant-panel{display:none!important}
body > .voice-stage .voice-canvas{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  padding:clamp(7px,1vw,12px)!important;
  overflow:hidden!important;
}
body > .voice-stage .voice-grid{
  display:grid!important;
  grid-template-rows:minmax(0,1fr)!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  padding:0!important;
  overflow:hidden!important;
  align-content:stretch!important;
}
body > .voice-stage .voice-grid-main{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  overflow:hidden!important;
}
body > .voice-stage[data-view="grid"] .voice-grid-main{
  display:grid!important;
  grid-template-columns:repeat(var(--voice-grid-columns,1),minmax(0,1fr))!important;
  grid-template-rows:repeat(var(--voice-grid-rows,1),minmax(0,1fr))!important;
  gap:var(--voice-grid-gap,10px)!important;
}
body > .voice-stage[data-view="grid"][data-participant-count="1"] .voice-grid-main{place-items:center!important}
body > .voice-stage[data-view="grid"][data-participant-count="1"] .video-tile{width:min(100%,960px)!important;height:min(100%,540px)!important}
body > .voice-stage .voice-focus-strip[hidden]{display:none!important}
body > .voice-stage[data-view="focus"] .voice-grid{
  grid-template-rows:minmax(0,1fr) clamp(74px,17%,108px)!important;
  gap:8px!important;
}
body > .voice-stage[data-view="focus"] .voice-grid-main{display:grid!important;place-items:stretch!important}
body > .voice-stage[data-view="focus"] .voice-focus-strip{
  display:flex!important;
  align-items:stretch!important;
  gap:8px!important;
  min-width:0!important;
  min-height:0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:thin;
  padding-bottom:1px;
}
body > .voice-stage[data-view="focus"] .voice-focus-strip .video-tile{
  flex:0 0 clamp(124px,17cqw,184px)!important;
  width:clamp(124px,17cqw,184px)!important;
  height:100%!important;
}
body > .voice-stage .video-tile,
body > .voice-stage[data-view="focus"] .video-tile.focused,
body > .voice-stage[data-view="focus"] .video-tile:not(.focused){
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  min-width:0!important;
  min-height:0!important;
  aspect-ratio:auto!important;
  margin:0!important;
  flex:none!important;
}
body > .voice-stage .voice-participant-placeholder{min-width:0!important;min-height:0!important;padding:clamp(8px,2vw,22px)!important}
body > .voice-stage .voice-participant-placeholder .avatar.large{width:clamp(50px,8vmin,82px)!important;height:clamp(50px,8vmin,82px)!important}
body > .voice-stage .voice-participant-panel{
  display:flex!important;
  width:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  background:var(--panel)!important;
}
body > .voice-stage .voice-participant-panel>header{flex:0 0 46px!important;height:46px!important;min-height:46px!important;padding:0 12px!important}
body > .voice-stage .voice-participant-list{flex:1 1 auto!important;min-height:0!important;overflow:auto!important;padding:6px!important}
body > .voice-stage .voice-participant-row{min-width:0!important;padding:7px!important;gap:8px!important}
body > .voice-stage .callbar{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex-wrap:nowrap!important;
  gap:10px!important;
  width:100%!important;
  height:72px!important;
  min-height:0!important;
  padding:8px 12px!important;
  overflow:hidden!important;
  background:var(--panel)!important;
}
body > .voice-stage .callbar-group{display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;min-width:0!important}
body > .voice-stage .callbar button{
  flex:0 0 auto!important;
  width:54px!important;
  min-width:54px!important;
  height:50px!important;
  padding:0 6px!important;
  border-radius:11px!important;
}
body > .voice-stage .callbar .hangup{width:68px!important;min-width:68px!important;margin-left:2px!important}
body > .voice-stage .callbar button span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@container voice-stage (max-width:900px){
  body > .voice-stage .voice-stage-quality{display:none!important}
  body > .voice-stage .voice-stage-body{grid-template-columns:minmax(0,1fr) 220px!important}
  body > .voice-stage .voice-stage-title small{display:none!important}
}
@container voice-stage (max-width:720px){
  body > .voice-stage .voice-stage-body{display:block!important}
  body > .voice-stage .voice-participant-panel{position:absolute!important;inset:0 0 0 auto!important;width:min(82cqw,286px)!important;z-index:8!important;box-shadow:-12px 0 32px #0008;transition:transform .18s ease!important}
  body > .voice-stage.participants-hidden .voice-participant-panel{display:flex!important;transform:translateX(105%)!important;pointer-events:none!important}
  body > .voice-stage .voice-stage-connection{padding:4px 6px!important;font-size:9px!important}
  body > .voice-stage .callbar{gap:5px!important;padding-inline:7px!important}
  body > .voice-stage .callbar button{width:46px!important;min-width:46px!important;height:46px!important}
  body > .voice-stage .callbar .hangup{width:52px!important;min-width:52px!important}
  body > .voice-stage .callbar button span{display:none!important}
}
@container voice-stage (max-width:520px){
  body > .voice-stage .voice-view-switch{display:none!important}
  body > .voice-stage .voice-stage-channel-icon{display:none!important}
  body > .voice-stage .voice-stage-toolbar{gap:1px!important}
  body > .voice-stage .voice-stage-toolbar .icon-btn{width:30px!important;min-width:30px!important;height:30px!important}
}

/* v2.47 — exact application shell fit and unified voice-stage header controls. */
body > .voice-stage{
  position:fixed!important;
  inset:var(--voice-stage-top,0px) var(--voice-stage-right,0px) var(--voice-stage-bottom,0px) var(--voice-stage-left,calc(var(--layout-rail,72px) + var(--layout-sidebar,240px)))!important;
  width:auto!important;
  height:auto!important;
  max-width:none!important;
  max-height:none!important;
  grid-template-rows:var(--layout-header,48px) minmax(0,1fr) var(--layout-userbar,56px)!important;
  border-radius:0 var(--surface-radius,8px) var(--surface-radius,8px) 0!important;
  box-shadow:none!important;
}
body > .voice-stage:fullscreen{
  inset:0!important;
  width:100%!important;
  height:100%!important;
  border-radius:0!important;
  grid-template-rows:52px minmax(0,1fr) 62px!important;
}
body > .voice-stage .voice-stage-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  height:var(--layout-header,48px)!important;
  min-height:var(--layout-header,48px)!important;
  padding:0 8px 0 10px!important;
  overflow:hidden!important;
}
body > .voice-stage .voice-stage-title{
  flex:1 1 auto!important;
  min-width:0!important;
  max-width:none!important;
  gap:7px!important;
}
body > .voice-stage .voice-stage-channel-icon{
  flex:0 0 30px!important;
  width:30px!important;
  height:30px!important;
  border-radius:8px!important;
}
body > .voice-stage .voice-stage-title>div{flex:1 1 auto!important;min-width:0!important;overflow:hidden!important}
body > .voice-stage .voice-stage-title strong{font-size:13px!important;line-height:16px!important}
body > .voice-stage .voice-stage-title small{font-size:10px!important;line-height:12px!important}
body > .voice-stage .voice-stage-head-actions{
  flex:0 0 auto!important;
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:6px!important;
  height:100%!important;
}
body > .voice-stage .voice-stage-status{
  flex:0 1 auto!important;
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:5px!important;
  overflow:hidden!important;
}
body > .voice-stage .voice-stage-connection{
  min-height:24px!important;
  padding:3px 7px!important;
  margin:0!important;
  font-size:9px!important;
  line-height:1!important;
}
body > .voice-stage .voice-stage-quality{
  min-width:0!important;
  max-width:150px!important;
  padding:4px 7px!important;
  font-size:9px!important;
  line-height:1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body > .voice-stage .voice-stage-toolbar{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:1px!important;
  height:34px!important;
  padding:2px!important;
  border-radius:8px!important;
  background:color-mix(in srgb,var(--rail) 82%,transparent)!important;
  overflow:visible!important;
}
body > .voice-stage .voice-stage-toolbar .icon-btn{
  flex:0 0 30px!important;
  width:30px!important;
  min-width:30px!important;
  height:30px!important;
  min-height:30px!important;
  padding:5px!important;
  border:0!important;
  border-radius:6px!important;
}
body > .voice-stage .voice-stage-toolbar .icon-btn + .icon-btn{margin-left:0!important}
body > .voice-stage .voice-stage-participant-count{right:-3px!important;top:-3px!important}
body > .voice-stage .voice-stage-body{min-height:0!important;overflow:hidden!important}
body > .voice-stage .voice-participant-panel>header{
  flex:0 0 42px!important;
  height:42px!important;
  min-height:42px!important;
  padding:0 10px!important;
}
body > .voice-stage .voice-canvas{padding:8px!important}
body > .voice-stage .callbar{
  height:var(--layout-userbar,56px)!important;
  min-height:var(--layout-userbar,56px)!important;
  padding:5px 10px!important;
  gap:7px!important;
  border-top:1px solid color-mix(in srgb,var(--muted) 13%,transparent)!important;
}
body > .voice-stage .callbar-group{gap:4px!important}
body > .voice-stage .callbar button{
  width:48px!important;
  min-width:48px!important;
  height:42px!important;
  min-height:42px!important;
  padding:0 5px!important;
  border-radius:10px!important;
}
body > .voice-stage .callbar .hangup{
  width:60px!important;
  min-width:60px!important;
  height:42px!important;
  margin-left:0!important;
}
body > .voice-stage .callbar button span{font-size:8px!important;line-height:10px!important}
@container voice-stage (max-width:980px){
  body > .voice-stage .voice-stage-quality{display:none!important}
  body > .voice-stage .voice-stage-title small{display:none!important}
}
@container voice-stage (max-width:790px){
  body > .voice-stage .voice-stage-status{max-width:72px!important}
  body > .voice-stage .voice-stage-connection{padding-inline:5px!important}
  body > .voice-stage .voice-stage-toolbar .icon-btn{flex-basis:29px!important;width:29px!important;min-width:29px!important}
}
@container voice-stage (max-width:620px){
  body > .voice-stage .voice-stage-channel-icon{display:none!important}
  body > .voice-stage .voice-stage-head{padding-left:8px!important}
  body > .voice-stage .voice-stage-toolbar{gap:0!important}
  body > .voice-stage .voice-stage-toolbar .icon-btn{flex-basis:28px!important;width:28px!important;min-width:28px!important;height:28px!important;min-height:28px!important}
  body > .voice-stage .callbar button span{display:none!important}
  body > .voice-stage .callbar button{width:42px!important;min-width:42px!important;height:40px!important}
  body > .voice-stage .callbar .hangup{width:48px!important;min-width:48px!important}
}

/* v2.48 — researched application-style voice stage, constrained to application's main row. */
body.voice-stage-open .header{
  visibility:visible!important;
  pointer-events:auto!important;
}
body.voice-stage-open .main,
body.voice-stage-open .members{
  visibility:hidden!important;
  pointer-events:none!important;
}
body > .voice-stage{
  position:fixed!important;
  inset:var(--voice-stage-top,var(--layout-header,48px)) var(--voice-stage-right,0px) var(--voice-stage-bottom,0px) var(--voice-stage-left,calc(var(--layout-rail,72px) + var(--layout-sidebar,240px)))!important;
  display:grid!important;
  grid-template-rows:44px minmax(0,1fr)!important;
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  overflow:hidden!important;
  container-type:inline-size!important;
  container-name:voice-stage!important;
  border-radius:0 0 var(--surface-radius,8px) 0!important;
  box-shadow:none!important;
  background:#111214!important;
}
body > .voice-stage:fullscreen{
  inset:0!important;
  width:100%!important;
  height:100%!important;
  grid-template-rows:48px minmax(0,1fr)!important;
  border-radius:0!important;
}
body > .voice-stage .voice-stage-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  width:100%!important;
  height:44px!important;
  min-height:44px!important;
  padding:0 8px 0 12px!important;
  overflow:hidden!important;
  background:color-mix(in srgb,var(--top) 94%,#111214 6%)!important;
  border-bottom:1px solid color-mix(in srgb,var(--muted) 14%,transparent)!important;
}
body > .voice-stage .voice-stage-title{
  display:grid!important;
  grid-template-columns:20px minmax(0,1fr)!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
}
body > .voice-stage .voice-stage-channel-icon{
  display:grid!important;
  place-items:center!important;
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  color:var(--muted)!important;
}
body > .voice-stage .voice-stage-channel-icon .app-icon,
body > .voice-stage .voice-stage-channel-icon svg{
  width:18px!important;
  height:18px!important;
}
body > .voice-stage .voice-stage-title-copy{
  display:block!important;
  min-width:0!important;
  overflow:hidden!important;
}
body > .voice-stage .voice-stage-title-line{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  min-width:0!important;
  height:20px!important;
}
body > .voice-stage .voice-stage-title-line strong{
  display:block!important;
  flex:0 1 auto!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  color:var(--strong)!important;
  font-size:13px!important;
  line-height:18px!important;
  font-weight:700!important;
}
body > .voice-stage .voice-stage-title-copy > small{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  min-width:0!important;
  height:14px!important;
  margin:0!important;
  overflow:hidden!important;
  color:var(--muted)!important;
  font-size:10px!important;
  line-height:12px!important;
}
body > .voice-stage .voice-stage-server-name{
  display:block!important;
  flex:0 1 auto!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
body > .voice-stage .voice-stage-quality{
  display:block!important;
  flex:0 0 auto!important;
  max-width:120px!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  border:0!important;
  background:none!important;
  color:color-mix(in srgb,var(--muted) 82%,var(--accent) 18%)!important;
  font-size:10px!important;
  line-height:12px!important;
}
body > .voice-stage .voice-stage-connection{
  display:inline-flex!important;
  align-items:center!important;
  flex:0 0 auto!important;
  gap:4px!important;
  height:17px!important;
  min-height:17px!important;
  margin:0!important;
  padding:0 5px!important;
  border-radius:999px!important;
  font-size:9px!important;
  line-height:1!important;
}
body > .voice-stage .voice-stage-connection i{
  width:6px!important;
  height:6px!important;
  flex:0 0 6px!important;
}
body > .voice-stage .voice-stage-head-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:5px!important;
  min-width:0!important;
  height:32px!important;
  overflow:hidden!important;
}
body > .voice-stage .voice-stage-view-switch,
body > .voice-stage .voice-stage-toolbar{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  gap:2px!important;
  height:32px!important;
  margin:0!important;
  padding:2px!important;
  overflow:visible!important;
  border:1px solid color-mix(in srgb,var(--muted) 10%,transparent)!important;
  border-radius:8px!important;
  background:color-mix(in srgb,var(--input) 84%,transparent)!important;
}
body > .voice-stage .voice-stage-toolbar{
  gap:1px!important;
}
body > .voice-stage :is(.voice-stage-view-switch,.voice-stage-toolbar) .icon-btn{
  display:grid!important;
  place-items:center!important;
  flex:0 0 26px!important;
  width:26px!important;
  min-width:26px!important;
  height:26px!important;
  min-height:26px!important;
  margin:0!important;
  padding:4px!important;
  border:0!important;
  border-radius:6px!important;
}
body > .voice-stage :is(.voice-stage-view-switch,.voice-stage-toolbar) .icon-btn + .icon-btn{
  margin-left:0!important;
}
body > .voice-stage .voice-stage-participant-count{
  top:-4px!important;
  right:-4px!important;
  min-width:14px!important;
  height:14px!important;
  padding:0 3px!important;
  font-size:8px!important;
  line-height:14px!important;
}
body > .voice-stage .voice-stage-body{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) clamp(210px,20vw,260px)!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  overflow:hidden!important;
  background:#111214!important;
}
body > .voice-stage.participants-hidden .voice-stage-body{
  grid-template-columns:minmax(0,1fr)!important;
}
body > .voice-stage.participants-hidden .voice-participant-panel{
  display:none!important;
}
body > .voice-stage .voice-canvas{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  padding:8px 8px 70px!important;
  overflow:hidden!important;
}
body > .voice-stage .voice-grid{
  display:grid!important;
  grid-template-rows:minmax(0,1fr)!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}
body > .voice-stage .voice-grid-main{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  overflow:hidden!important;
}
body > .voice-stage[data-view="grid"] .voice-grid-main{
  display:grid!important;
  grid-template-columns:repeat(var(--voice-grid-columns,1),minmax(0,1fr))!important;
  grid-template-rows:repeat(var(--voice-grid-rows,1),minmax(0,1fr))!important;
  gap:var(--voice-grid-gap,8px)!important;
}
body > .voice-stage[data-view="grid"][data-participant-count="1"] .voice-grid-main{
  place-items:center!important;
}
body > .voice-stage[data-view="grid"][data-participant-count="1"] .video-tile{
  width:min(100%,800px)!important;
  height:min(100%,450px)!important;
}
body > .voice-stage[data-view="focus"] .voice-grid{
  grid-template-rows:minmax(0,1fr) clamp(66px,16%,96px)!important;
  gap:7px!important;
}
body > .voice-stage[data-view="focus"] .voice-focus-strip{
  display:flex!important;
  align-items:stretch!important;
  gap:7px!important;
  min-width:0!important;
  min-height:0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
body > .voice-stage[data-view="focus"] .voice-focus-strip[hidden]{display:none!important}
body > .voice-stage[data-view="focus"] .voice-focus-strip .video-tile{
  flex:0 0 clamp(112px,16cqw,168px)!important;
  width:clamp(112px,16cqw,168px)!important;
  height:100%!important;
}
body > .voice-stage .video-tile,
body > .voice-stage[data-view="focus"] .video-tile.focused,
body > .voice-stage[data-view="focus"] .video-tile:not(.focused){
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  max-height:100%!important;
  margin:0!important;
  aspect-ratio:auto!important;
  border-radius:10px!important;
}
body > .voice-stage .voice-participant-panel{
  display:flex!important;
  flex-direction:column!important;
  width:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  border-left:1px solid color-mix(in srgb,var(--muted) 12%,transparent)!important;
  background:var(--panel)!important;
}
body > .voice-stage .voice-participant-panel > header{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  flex:0 0 40px!important;
  width:100%!important;
  height:40px!important;
  min-height:40px!important;
  padding:0 10px!important;
}
body > .voice-stage .voice-participant-list{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:auto!important;
  padding:5px!important;
}
body > .voice-stage .callbar{
  position:absolute!important;
  left:50%!important;
  bottom:10px!important;
  z-index:12!important;
  display:block!important;
  width:max-content!important;
  max-width:calc(100% - 16px)!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  transform:translateX(-50%)!important;
  border:0!important;
  background:none!important;
}
body > .voice-stage .callbar-shell{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  width:max-content!important;
  max-width:100%!important;
  min-height:52px!important;
  padding:6px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:none!important;
  border:1px solid color-mix(in srgb,var(--muted) 18%,transparent)!important;
  border-radius:16px!important;
  background:color-mix(in srgb,#111214 92%,var(--panel) 8%)!important;
  box-shadow:0 8px 26px rgba(0,0,0,.42)!important;
  backdrop-filter:blur(10px)!important;
}
body > .voice-stage .callbar-shell::-webkit-scrollbar{display:none!important}
body > .voice-stage .callbar-group{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  min-width:0!important;
}
body > .voice-stage .callbar-divider{
  display:block!important;
  flex:0 0 1px!important;
  width:1px!important;
  height:24px!important;
  margin:0 2px!important;
  background:color-mix(in srgb,var(--muted) 24%,transparent)!important;
}
body > .voice-stage .callbar button{
  display:grid!important;
  place-items:center!important;
  flex:0 0 40px!important;
  width:40px!important;
  min-width:40px!important;
  height:40px!important;
  min-height:40px!important;
  margin:0!important;
  padding:9px!important;
  border-radius:50%!important;
}
body > .voice-stage .callbar .hangup{
  flex-basis:44px!important;
  width:44px!important;
  min-width:44px!important;
  height:40px!important;
  margin:0!important;
  border-radius:20px!important;
}
body > .voice-stage .callbar button > span{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
@container voice-stage (max-width:900px){
  body > .voice-stage .voice-stage-quality{display:none!important}
  body > .voice-stage .voice-stage-body{grid-template-columns:minmax(0,1fr) 210px!important}
}
@container voice-stage (max-width:720px){
  body > .voice-stage .voice-stage-body{display:block!important}
  body > .voice-stage .voice-participant-panel{
    position:absolute!important;
    inset:0 0 0 auto!important;
    width:min(82cqw,280px)!important;
    z-index:20!important;
    box-shadow:-12px 0 32px rgba(0,0,0,.45)!important;
    transition:transform .18s ease!important;
  }
  body > .voice-stage.participants-hidden .voice-participant-panel{
    display:flex!important;
    transform:translateX(105%)!important;
    pointer-events:none!important;
  }
  body > .voice-stage .voice-stage-title-copy > small{display:none!important}
}
@container voice-stage (max-width:560px){
  body > .voice-stage .voice-stage-head{gap:6px!important;padding-inline:8px!important}
  body > .voice-stage .voice-stage-title{grid-template-columns:18px minmax(0,1fr)!important;gap:6px!important}
  body > .voice-stage .voice-stage-channel-icon{width:18px!important;height:18px!important;min-width:18px!important}
  body > .voice-stage .voice-stage-head-actions{gap:3px!important}
  body > .voice-stage .voice-stage-view-switch,
  body > .voice-stage .voice-stage-toolbar{gap:0!important;padding:1px!important;height:30px!important}
  body > .voice-stage :is(.voice-stage-view-switch,.voice-stage-toolbar) .icon-btn{width:26px!important;min-width:26px!important;height:26px!important}
  body > .voice-stage .voice-canvas{padding:6px 6px 66px!important}
  body > .voice-stage .callbar{bottom:8px!important}
  body > .voice-stage .callbar-shell{min-height:50px!important;padding:5px!important;gap:3px!important}
  body > .voice-stage .callbar-group{gap:3px!important}
  body > .voice-stage .callbar-divider{margin-inline:1px!important}
  body > .voice-stage .callbar button{width:38px!important;min-width:38px!important;height:38px!important;flex-basis:38px!important;padding:8px!important}
  body > .voice-stage .callbar .hangup{width:42px!important;min-width:42px!important;height:38px!important;flex-basis:42px!important}
}
@container voice-stage (max-width:430px){
  body > .voice-stage .voice-stage-view-switch{display:none!important}
  body > .voice-stage .voice-stage-title-line{gap:4px!important}
  body > .voice-stage .voice-stage-connection{padding-inline:4px!important}
}

/* v2.48.1 — one continuous top action cluster. */
body > .voice-stage .voice-stage-head-actions{
  gap:0!important;
  padding:2px!important;
  border:1px solid color-mix(in srgb,var(--muted) 10%,transparent)!important;
  border-radius:8px!important;
  background:color-mix(in srgb,var(--input) 84%,transparent)!important;
}
body > .voice-stage .voice-stage-view-switch,
body > .voice-stage .voice-stage-toolbar{
  height:26px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
}
body > .voice-stage .voice-stage-toolbar::before{
  content:"";
  display:block;
  flex:0 0 1px;
  width:1px;
  height:18px;
  margin:0 2px;
  background:color-mix(in srgb,var(--muted) 22%,transparent);
}

/* v2.50 — final voice-stage containment, unified toolbar, and compact call controls. */
body > .voice-stage{
  box-sizing:border-box!important;
  width:auto!important;
  height:auto!important;
  max-width:calc(100vw - var(--voice-stage-left,0px) - var(--voice-stage-right,0px))!important;
  max-height:calc(100vh - var(--voice-stage-top,0px) - var(--voice-stage-bottom,0px))!important;
  border-right:0!important;
  contain:layout paint!important;
  overflow:hidden!important;
}
body > .voice-stage .voice-stage-head{
  box-sizing:border-box!important;
  grid-template-columns:minmax(0,1fr) max-content!important;
  width:100%!important;
  max-width:100%!important;
  padding:0 6px 0 10px!important;
  gap:8px!important;
  overflow:hidden!important;
}
body > .voice-stage .voice-stage-title{
  grid-template-columns:18px minmax(0,1fr)!important;
  gap:7px!important;
  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
}
body > .voice-stage .voice-stage-channel-icon{
  width:18px!important;
  min-width:18px!important;
  height:18px!important;
}
body > .voice-stage .voice-stage-channel-icon :is(svg,.app-icon){
  width:17px!important;
  height:17px!important;
}
body > .voice-stage .voice-stage-title-copy,
body > .voice-stage .voice-stage-title-line{
  min-width:0!important;
  max-width:100%!important;
}
body > .voice-stage .voice-stage-title-line{
  gap:6px!important;
}
body > .voice-stage .voice-stage-title-line strong{
  flex:0 1 auto!important;
  min-width:24px!important;
}
body > .voice-stage .voice-stage-connection{
  flex:0 0 auto!important;
}
body > .voice-stage .voice-stage-head-actions{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex:0 0 auto!important;
  gap:1px!important;
  width:max-content!important;
  max-width:100%!important;
  height:32px!important;
  min-height:32px!important;
  padding:2px!important;
  overflow:hidden!important;
  border:1px solid color-mix(in srgb,var(--muted) 12%,transparent)!important;
  border-radius:9px!important;
  background:color-mix(in srgb,var(--input) 90%,#111214 10%)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.025) inset!important;
}
body > .voice-stage .voice-stage-head-actions > .icon-btn{
  position:relative!important;
  display:grid!important;
  place-items:center!important;
  flex:0 0 27px!important;
  width:27px!important;
  min-width:27px!important;
  height:27px!important;
  min-height:27px!important;
  margin:0!important;
  padding:5px!important;
  border:0!important;
  border-radius:6px!important;
}
body > .voice-stage .voice-stage-head-actions > .icon-btn:hover,
body > .voice-stage .voice-stage-head-actions > .icon-btn.active{
  background:color-mix(in srgb,var(--accent) 18%,var(--hover))!important;
}
body > .voice-stage .voice-stage-action-divider{
  display:block!important;
  flex:0 0 1px!important;
  width:1px!important;
  height:18px!important;
  margin:0 2px!important;
  background:color-mix(in srgb,var(--muted) 24%,transparent)!important;
}
body > .voice-stage .voice-stage-participant-count{
  position:absolute!important;
  top:-3px!important;
  right:-3px!important;
}
body > .voice-stage .voice-stage-view-switch,
body > .voice-stage .voice-stage-toolbar,
body > .voice-stage .voice-stage-toolbar::before{
  display:none!important;
}
body > .voice-stage .voice-stage-body,
body > .voice-stage .voice-canvas,
body > .voice-stage .voice-grid,
body > .voice-stage .voice-grid-main{
  box-sizing:border-box!important;
  max-width:100%!important;
}
body > .voice-stage .callbar{
  left:50%!important;
  right:auto!important;
  bottom:9px!important;
  width:auto!important;
  max-width:calc(100% - 18px)!important;
  transform:translateX(-50%)!important;
}
body > .voice-stage .callbar-shell{
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:max-content!important;
  max-width:100%!important;
  min-height:50px!important;
  padding:5px!important;
  gap:4px!important;
  overflow:hidden!important;
  border-radius:15px!important;
}
body > .voice-stage .callbar-group{
  flex:0 1 auto!important;
  gap:4px!important;
}
body > .voice-stage .callbar button{
  flex:0 0 38px!important;
  width:38px!important;
  min-width:38px!important;
  height:38px!important;
  min-height:38px!important;
  padding:8px!important;
}
body > .voice-stage .callbar .hangup{
  flex:0 0 43px!important;
  width:43px!important;
  min-width:43px!important;
  height:38px!important;
}
body > .voice-stage .callbar-divider{
  height:22px!important;
  margin-inline:1px!important;
}
@container voice-stage (max-width:760px){
  body > .voice-stage .voice-stage-quality{display:none!important}
  body > .voice-stage .voice-stage-head{gap:5px!important;padding-inline:6px!important}
  body > .voice-stage .voice-stage-head-actions > .icon-btn{flex-basis:26px!important;width:26px!important;min-width:26px!important;height:26px!important;min-height:26px!important;padding:4px!important}
  body > .voice-stage .voice-stage-head-actions{height:31px!important;min-height:31px!important}
}
@container voice-stage (max-width:560px){
  body > .voice-stage .voice-stage-title-copy > small{display:none!important}
  body > .voice-stage .voice-stage-title{grid-template-columns:16px minmax(0,1fr)!important;gap:5px!important}
  body > .voice-stage .voice-stage-channel-icon{width:16px!important;min-width:16px!important;height:16px!important}
  body > .voice-stage .voice-stage-channel-icon :is(svg,.app-icon){width:15px!important;height:15px!important}
  body > .voice-stage .voice-stage-action-divider{margin-inline:1px!important}
  body > .voice-stage .callbar-shell{gap:2px!important;padding:4px!important}
  body > .voice-stage .callbar-group{gap:2px!important}
  body > .voice-stage .callbar button{flex-basis:35px!important;width:35px!important;min-width:35px!important;height:35px!important;min-height:35px!important;padding:7px!important}
  body > .voice-stage .callbar .hangup{flex-basis:40px!important;width:40px!important;min-width:40px!important;height:35px!important}
}

/* v2.51 — simple inline voice actions, exact bottom containment, and no toolbar stacking. */
body > .voice-stage{
  box-sizing:border-box!important;
  overflow:hidden!important;
}
body > .voice-stage .voice-stage-head{
  box-sizing:border-box!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  max-width:100%!important;
  overflow:hidden!important;
}
body > .voice-stage .voice-stage-head-actions{
  position:static!important;
  display:inline-flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  align-content:center!important;
  justify-content:flex-end!important;
  flex:0 0 auto!important;
  gap:4px!important;
  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
  height:30px!important;
  min-height:30px!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  white-space:nowrap!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  box-shadow:none!important;
}
body > .voice-stage .voice-stage-head-actions > button.icon-btn{
  position:relative!important;
  inset:auto!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 28px!important;
  float:none!important;
  width:28px!important;
  min-width:28px!important;
  max-width:28px!important;
  height:28px!important;
  min-height:28px!important;
  max-height:28px!important;
  margin:0!important;
  padding:5px!important;
  overflow:visible!important;
  transform:none!important;
  vertical-align:middle!important;
  box-sizing:border-box!important;
  border:0!important;
  border-radius:6px!important;
  background:transparent!important;
}
body > .voice-stage .voice-stage-head-actions > button.icon-btn:hover,
body > .voice-stage .voice-stage-head-actions > button.icon-btn.active{
  background:var(--hover)!important;
}
body > .voice-stage .voice-stage-head-actions > button.icon-btn :is(svg,.app-icon){
  display:block!important;
  flex:0 0 auto!important;
  width:16px!important;
  height:16px!important;
  margin:0!important;
  transform:none!important;
}
body > .voice-stage .voice-stage-action-divider{
  display:block!important;
  position:static!important;
  flex:0 0 1px!important;
  width:1px!important;
  min-width:1px!important;
  height:16px!important;
  margin:0 1px!important;
  align-self:center!important;
  background:color-mix(in srgb,var(--muted) 22%,transparent)!important;
}
body > .voice-stage .voice-stage-participant-count{
  position:absolute!important;
}
body > .voice-stage .voice-stage-body,
body > .voice-stage .voice-canvas{
  box-sizing:border-box!important;
  max-height:100%!important;
  overflow:hidden!important;
}
@container voice-stage (max-width:680px){
  body > .voice-stage .voice-stage-head-actions{gap:2px!important}
  body > .voice-stage .voice-stage-head-actions > button.icon-btn{flex-basis:27px!important;width:27px!important;min-width:27px!important;max-width:27px!important;height:27px!important;min-height:27px!important;max-height:27px!important}
}
@container voice-stage (max-width:520px){
  body > .voice-stage .voice-view-button[data-voice-view="focus"]{display:none!important}
  body > .voice-stage .voice-stage-action-divider:first-of-type{display:none!important}
}

/* Staged application updater ------------------------------------------------ */
.admin-update-settings code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;overflow-wrap:anywhere}
.admin-versioning-guide{display:grid;gap:10px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--accent) 7%,var(--panel));min-width:0}
.admin-versioning-guide>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.admin-versioning-guide code{padding:4px 7px;border-radius:6px;background:var(--input);color:var(--text);white-space:nowrap}
.admin-versioning-guide>small{color:var(--muted);line-height:1.45}
.admin-versioning-levels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.admin-versioning-levels span{display:grid;gap:2px;padding:8px 9px;border-radius:8px;background:color-mix(in srgb,var(--input) 86%,transparent);color:var(--muted);font-size:12px;line-height:1.35}
.admin-versioning-levels b{color:var(--text)}
.admin-update-package{display:grid;gap:12px;padding:14px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--panel) 88%,transparent);min-width:0}
.admin-update-package-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}
.admin-update-package-head>div{display:grid;gap:3px;min-width:0}
.admin-update-package-head small{color:var(--muted);line-height:1.4}
.admin-update-package-badge{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:2px 9px;border-radius:999px;background:var(--input);color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}
.admin-update-package-badge.ready{background:color-mix(in srgb,#23a55a 18%,var(--input));color:#57f287}
.admin-update-package-badge.error{background:color-mix(in srgb,#da373c 16%,var(--input));color:#fa777c}
.admin-update-package-badge.working{background:color-mix(in srgb,var(--accent) 18%,var(--input));color:var(--accent)}
.admin-update-status{display:grid;gap:10px;min-width:0;color:var(--text)}
.admin-update-status.loading{opacity:.72;pointer-events:none}
.admin-update-status>p{margin:0;color:var(--muted);line-height:1.45}
.admin-update-version-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.admin-update-version-grid>span{display:grid;gap:4px;padding:9px 10px;border-radius:8px;background:var(--input);color:var(--muted);font-size:12px;min-width:0}
.admin-update-version-grid strong{color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-update-counts{display:flex;flex-wrap:wrap;gap:7px}
.admin-update-counts span{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:7px;background:var(--input);color:var(--muted);font-size:12px}
.admin-update-counts b{color:var(--text)}
.admin-update-errors{margin:0;padding:9px 10px 9px 28px;border-radius:8px;background:color-mix(in srgb,#da373c 12%,var(--input));color:#fa777c}
.admin-update-status details{border:1px solid var(--border);border-radius:8px;background:var(--input);overflow:hidden}
.admin-update-status summary{cursor:pointer;padding:8px 10px;font-size:12px;font-weight:700;color:var(--text)}
.admin-update-status details ul{margin:0;padding:0 10px 9px 28px;max-height:160px;overflow:auto;color:var(--muted)}
.admin-update-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
  justify-content:end;
  gap:8px;
  width:min(100%,288px);
  margin-left:auto;
  min-width:0;
}
.admin-update-actions>button{
  box-sizing:border-box;
  width:100%!important;
  min-width:0!important;
  height:var(--inline-control-height)!important;
  min-height:var(--inline-control-height)!important;
  margin:0!important;
  padding-block:0!important;
  align-self:stretch!important;
  line-height:1!important;
  white-space:nowrap;
}
.admin-update-backups{display:grid;gap:12px;padding:14px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--panel) 88%,transparent);min-width:0}
.admin-update-backup-list{display:grid;gap:8px;min-width:0;max-height:440px;overflow:auto;overscroll-behavior:contain;padding-right:2px}
.admin-update-backup-list.loading{opacity:.72;pointer-events:none}
.admin-update-backup-list>p{margin:0;color:var(--muted);line-height:1.45}
.admin-update-backup-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px;border:1px solid var(--border);border-radius:10px;background:var(--input);min-width:0}
.admin-update-backup-row.is-ready{border-color:color-mix(in srgb,#23a55a 44%,var(--border));background:color-mix(in srgb,#23a55a 7%,var(--input))}
.admin-update-backup-info{display:grid;gap:5px;min-width:0}
.admin-update-backup-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
.admin-update-backup-title strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-update-backup-info>small{color:var(--muted);line-height:1.35}
.admin-update-backup-info>p{margin:0;color:var(--text);font-size:12px;line-height:1.4}
.admin-update-backup-info>ul{margin:2px 0 0;padding:7px 9px 7px 25px;border-radius:7px;background:color-mix(in srgb,#da373c 11%,transparent);color:#fa777c;font-size:12px}
.admin-update-backup-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.admin-update-backup-meta span{display:inline-flex;align-items:center;gap:4px;min-height:22px;padding:2px 7px;border-radius:6px;background:color-mix(in srgb,var(--panel) 72%,transparent);color:var(--muted);font-size:11px}
.admin-update-backup-meta b{color:var(--text)}
.admin-update-restore{min-width:92px!important;margin:0!important;white-space:nowrap}
@media(max-width:620px){.admin-versioning-levels{grid-template-columns:1fr}.admin-update-version-grid{grid-template-columns:1fr}.admin-update-package-head{align-items:stretch;flex-direction:column}.admin-update-package-badge{align-self:flex-start}.admin-update-actions{width:100%;margin-left:0}.admin-update-backup-row{grid-template-columns:1fr}.admin-update-restore{width:100%!important}}
@media(max-width:340px){.admin-update-actions{grid-template-columns:1fr}}

/* v38: application-owner managed Server Admin access. */
.admin-user-feature-row{
 grid-template-columns:auto minmax(180px,1fr) minmax(250px,.9fr) auto;
}
.admin-user-account-actions{display:grid;gap:7px;align-self:stretch;align-content:center;min-width:132px}
.admin-user-account-actions button{width:100%;margin:0;white-space:nowrap}
.admin-user-type-badge{display:inline-flex;width:max-content;margin-top:5px;padding:2px 7px;border-radius:999px;background:var(--input);color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.admin-user-edit-form{display:grid;gap:14px}
.admin-user-edit-form>label{display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:700}
.server-admin-toggle{min-width:0}
.server-admin-entitlements{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.server-admin-entitlements span{display:inline-flex;align-items:center;min-height:20px;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,var(--input));color:var(--muted);font-size:10px;font-weight:700;line-height:1.2;white-space:nowrap}
@media(max-width:1050px){.admin-user-feature-row{grid-template-columns:auto minmax(0,1fr)}.server-admin-toggle,.admin-user-account-actions{grid-column:1/-1}.admin-user-account-actions{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}}

/* v1.1.0.0 Aurora: Developer Portal and Bot API. */
.rail-separator.developer-separator{height:2px;min-height:2px;margin:4px 10px 10px;border-radius:999px;background:var(--border)}
.server-btn.developer{position:relative;color:var(--muted)}
.server-btn.developer:hover,.server-btn.developer.active{background:#23a55a;color:#fff}
.server-btn.developer.active::before{height:40px}
.server-btn.developer svg{width:23px;height:23px}
.main.developer-main[data-developer-surface="1"]{display:block;min-width:0;overflow:auto;overscroll-behavior:contain;background:var(--bg);padding:0}
.main.developer-main[data-developer-surface="1"]>*{box-sizing:border-box}
.developer-landing,.developer-application,.developer-docs{width:min(1180px,calc(100% - 64px));margin:0 auto;padding:42px 0 72px}
.developer-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding:34px;border:1px solid var(--border);border-radius:20px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 18%,var(--panel)),var(--panel) 58%,color-mix(in srgb,#23a55a 10%,var(--panel)));box-shadow:0 16px 38px rgb(0 0 0 / .16)}
.developer-hero>div{max-width:760px}
.developer-hero h1,.developer-page-heading h1,.developer-authorize-card h1{margin:7px 0 10px;color:var(--strong);font-size:clamp(28px,4vw,44px);line-height:1.05;letter-spacing:-.035em}
.developer-hero p,.developer-page-heading p,.developer-authorize-card>p{margin:0;color:var(--muted);font-size:15px;line-height:1.6}
.developer-eyebrow{display:inline-flex;align-items:center;gap:8px;color:color-mix(in srgb,var(--accent) 78%,#fff);font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.developer-section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:34px 2px 16px}
.developer-section-heading h2,.developer-panel-heading h2,.developer-doc-card h2{margin:0;color:var(--strong);font-size:20px}
.developer-section-heading p,.developer-panel-heading p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.45}
.developer-section-heading>span{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:28px;border-radius:999px;background:var(--input);color:var(--muted);font-size:12px;font-weight:800}
.developer-app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:16px}
.developer-app-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;min-height:112px;padding:18px;text-align:left;border:1px solid var(--border);border-radius:14px;background:var(--panel);color:var(--text);transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}
.developer-app-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:0 12px 26px rgb(0 0 0 / .14)}
.developer-app-card-copy{min-width:0;display:grid;gap:5px}
.developer-app-card-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--strong);font-size:15px}
.developer-app-card-copy>span{color:var(--muted);font-size:12px;line-height:1.35}
.developer-app-card>svg{width:18px;color:var(--muted)}
.developer-app-avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:64px;height:64px;overflow:hidden;border-radius:18px;background:linear-gradient(145deg,var(--accent),color-mix(in srgb,var(--accent) 50%,#23a55a));color:#fff;box-shadow:inset 0 0 0 1px rgb(255 255 255 / .12)}
.developer-app-avatar img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.developer-app-avatar b{font-size:20px;letter-spacing:.02em}
.developer-app-avatar.tiny{width:30px;height:30px;border-radius:9px}
.developer-app-avatar.tiny b{font-size:10px}
.developer-status-pill{display:inline-flex;align-items:center;gap:6px;width:max-content;max-width:100%;min-height:23px;padding:2px 8px;border-radius:999px;background:var(--input);color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.035em}
.developer-status-pill i{width:7px;height:7px;border-radius:50%;background:currentColor}
.developer-status-pill.online{background:color-mix(in srgb,#23a55a 15%,var(--input));color:#3ba55d}
.developer-status-pill.offline{background:color-mix(in srgb,#da373c 13%,var(--input));color:#ef6b70}
.developer-status-pill.neutral{color:var(--muted)}
.developer-sidebar-intro{display:flex;align-items:center;gap:10px;margin:7px 8px 12px;padding:10px;border-radius:10px;background:color-mix(in srgb,var(--accent) 10%,transparent)}
.developer-sidebar-intro>span{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;background:var(--accent);color:#fff}
.developer-sidebar-intro svg{width:18px;height:18px}
.developer-sidebar-intro>div{display:grid;min-width:0}
.developer-sidebar-intro strong{color:var(--strong);font-size:13px}
.developer-sidebar-intro small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}
.developer-nav-row svg,.developer-create-sidebar>svg{width:18px;height:18px}
.developer-app-sidebar{height:auto!important;min-height:44px!important;padding-block:6px!important}
.developer-app-sidebar>span:last-child{display:grid;min-width:0;text-align:left}
.developer-app-sidebar>span:last-child>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.developer-app-sidebar small{color:var(--muted);font-size:10px}
.developer-app-header{display:flex;align-items:center;gap:18px;margin-bottom:22px;padding:18px 20px;border:1px solid var(--border);border-radius:16px;background:var(--panel)}
.developer-app-header>div:not(.developer-app-header-status){display:grid;gap:4px;min-width:0;flex:1}
.developer-app-header h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;color:var(--strong);font-size:24px}
.developer-app-header p{margin:0;color:var(--muted);font-size:12px}
.developer-app-header-status{display:grid;justify-items:end;gap:7px}
.developer-version-badge{display:inline-flex;padding:3px 8px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font:700 10px/1.3 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.developer-back{display:inline-flex!important;flex:0 0 auto;width:36px!important;height:36px!important;padding:8px!important}
.developer-tabs{display:flex;gap:4px;overflow-x:auto;padding:4px;margin-bottom:18px;border:1px solid var(--border);border-radius:12px;background:var(--panel);scrollbar-width:thin}
.developer-tab{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;min-height:38px;padding:0 13px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-weight:700}
.developer-tab:hover{background:var(--hover);color:var(--text)}
.developer-tab.active{background:var(--accent);color:#fff}
.developer-tab svg{width:16px;height:16px}
.developer-tab-content{display:grid;gap:16px}
.developer-panel,.developer-doc-card{padding:24px;border:1px solid var(--border);border-radius:15px;background:var(--panel)}
.developer-panel.danger{border-color:color-mix(in srgb,var(--danger) 45%,var(--border));background:color-mix(in srgb,var(--danger) 4%,var(--panel))}
.developer-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}
.developer-form{display:grid;gap:16px}
.developer-form label,.developer-authorize-card label,.developer-modal label{display:grid;gap:7px;color:var(--text);font-size:12px;font-weight:800}
.developer-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:2px}
.developer-id-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.developer-copy-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.developer-copy-field>.field{min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}
.developer-copy{width:40px!important;min-width:40px!important;padding:9px!important}
.developer-bot-profile{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:18px;margin-bottom:20px;padding:18px;border-radius:12px;background:var(--input)}
.developer-bot-illustration{display:inline-flex;align-items:center;justify-content:center;width:68px;height:68px;border-radius:18px;background:color-mix(in srgb,var(--accent) 18%,var(--panel));color:var(--accent)}
.developer-bot-illustration svg{width:34px;height:34px}
.developer-toggle-row{display:flex!important;align-items:center!important;justify-content:space-between;grid-template-columns:1fr auto!important;gap:20px;padding:13px 0;border-bottom:1px solid var(--border)}
.developer-toggle-row>span{display:grid;gap:3px}
.developer-toggle-row small,.developer-check-row small,.developer-intent-card small{color:var(--muted);font-weight:400;line-height:1.4}
.developer-intents-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.developer-intent-card,.developer-check-row{display:flex!important;align-items:flex-start!important;gap:10px;padding:13px;border:1px solid var(--border);border-radius:10px;background:var(--input);cursor:pointer}
.developer-intent-card:hover,.developer-check-row:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}
.developer-intent-card>input,.developer-check-row>input{flex:0 0 auto;margin-top:2px;accent-color:var(--accent)}
.developer-intent-card>span,.developer-check-row>span{display:grid;gap:3px;min-width:0}
.developer-intent-card strong,.developer-check-row strong{color:var(--strong);font-size:12px}
.developer-intent-card em{padding:2px 5px;border-radius:4px;background:color-mix(in srgb,var(--yellow) 18%,transparent);color:var(--yellow);font-size:8px;font-style:normal;text-transform:uppercase}
.developer-intent-card.privileged{border-color:color-mix(in srgb,var(--yellow) 25%,var(--border))}
.developer-permissions-grid,.developer-install-permissions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.developer-permission-group{min-width:0;margin:0;padding:10px;border:1px solid var(--border);border-radius:11px}
.developer-permission-group legend{padding:0 6px;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.developer-permission-group .developer-check-row{margin:4px 0;padding:9px;border:0;background:transparent}
.developer-check-row.danger strong{color:#ed4245}
.developer-token-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:17px;border-radius:11px;background:var(--input)}
.developer-token-summary>div{display:grid;gap:5px;min-width:0}
.developer-token-summary code{overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:12px}
.developer-token-warning{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid color-mix(in srgb,var(--yellow) 33%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--yellow) 8%,var(--panel));color:var(--text);font-size:12px;line-height:1.45}
.developer-token-warning svg{flex:0 0 auto;width:18px;color:var(--yellow)}
.developer-token-reveal{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}
.developer-installation{display:grid;gap:18px}
.developer-server-list{display:grid;gap:8px}
.developer-server-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--input)}
.developer-server-row>div{display:grid;gap:3px;min-width:0}
.developer-server-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--strong)}
.developer-server-row small{color:var(--muted)}
.developer-server-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;overflow:hidden;border-radius:13px;background:var(--panel);color:var(--muted);font-weight:900}
.developer-server-icon img{width:100%;height:100%;object-fit:cover}
.developer-server-icon.app{background:var(--accent);color:#fff}
.developer-install-url{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}
.developer-docs{display:grid;gap:16px}
.developer-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:10px;padding:8px 0 20px}
.developer-page-heading h1{font-size:34px}
.developer-doc-card{display:grid;gap:14px}
.developer-doc-card h3{margin:0;color:var(--strong);font-size:15px}
.developer-doc-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}
.developer-code-block{position:relative;overflow:auto;margin:0;padding:17px 48px 17px 17px;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,#08090b 68%,var(--input));color:#d7e0ea;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre}
.developer-code-block .developer-copy{position:absolute;top:8px;right:8px}
.developer-endpoint-list{display:grid;gap:7px}
.developer-endpoint{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:10px;padding:9px 10px;border-radius:8px;background:var(--input)}
.developer-endpoint b{display:inline-flex;justify-content:center;padding:3px 6px;border-radius:5px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);font-size:9px}
.developer-endpoint code{overflow-wrap:anywhere;color:var(--text);font-size:11px}
.developer-inline-docs{padding:15px;border-radius:11px;background:var(--input);color:var(--muted);font-size:12px;line-height:1.5}
.developer-authorize{display:grid;place-items:center;min-height:100%;padding:42px 24px}
.developer-authorize-card{width:min(560px,100%);padding:32px;border:1px solid var(--border);border-radius:20px;background:var(--panel);box-shadow:0 24px 64px rgb(0 0 0 / .28)}
.developer-authorize-brand{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:26px}
.developer-authorize-brand>svg{width:22px;color:var(--muted)}
.developer-authorize-permissions{margin:18px 0;padding:15px;border-radius:11px;background:var(--input)}
.developer-authorize-permissions strong{color:var(--strong)}
.developer-authorize-permissions p{margin:7px 0;color:var(--text);font-size:12px;line-height:1.5}
.developer-authorize-permissions small{color:var(--muted);line-height:1.45}
.developer-authorize-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}
.developer-empty,.developer-loading{display:grid;place-items:center;align-content:center;gap:12px;min-height:360px;padding:30px;text-align:center;color:var(--muted)}
.developer-empty>span{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:20px;background:var(--input);color:var(--accent)}
.developer-empty svg{width:30px;height:30px}
.developer-empty h2{margin:0;color:var(--strong)}
.developer-empty p{max-width:520px;margin:0;line-height:1.55}
.developer-spinner{width:34px;height:34px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:developer-spin .8s linear infinite}
@keyframes developer-spin{to{transform:rotate(360deg)}}
.developer-modal{display:grid;gap:14px;min-width:min(420px,calc(100vw - 48px))}
.developer-modal>h2,.developer-modal>p{margin:0}
.developer-modal>p{color:var(--muted);line-height:1.5}
.developer-modal-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:15px;background:color-mix(in srgb,var(--accent) 15%,var(--input));color:var(--accent)}
.developer-modal-icon.warning{background:color-mix(in srgb,var(--yellow) 15%,var(--input));color:var(--yellow)}
.bot-tag{display:inline-flex;align-items:center;justify-content:center;min-height:15px;margin-left:5px;padding:1px 4px;border-radius:3px;background:var(--accent);color:#fff!important;font-size:8px!important;font-weight:900!important;line-height:1!important;letter-spacing:.035em;vertical-align:middle;text-transform:uppercase}
@media(max-width:900px){.developer-landing,.developer-application,.developer-docs{width:min(100% - 36px,1180px)}.developer-intents-grid,.developer-permissions-grid,.developer-install-permissions{grid-template-columns:1fr}.developer-hero{align-items:flex-start;flex-direction:column}.developer-id-grid{grid-template-columns:1fr}}

/* v1.1.1.0 Aurora: refined Developer Portal and complete Bot API guides. */
.developer-landing,.developer-application,.developer-docs{width:min(1240px,calc(100% - 56px));padding:34px 0 72px}
.developer-sidebar-intro{padding:9px 10px;margin-bottom:10px}
.developer-sidebar-intro>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--strong);font-size:13px}
.developer-portal-header,.developer-doc-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:4px 2px 26px;border-bottom:1px solid var(--border)}
.developer-portal-header>div,.developer-doc-header{min-width:0}
.developer-portal-header h1,.developer-doc-header h1{margin:0;color:var(--strong);font-size:32px;line-height:1.15;letter-spacing:-.025em}
.developer-portal-header p,.developer-doc-header p{max-width:760px;margin:7px 0 0;color:var(--muted);font-size:14px;line-height:1.55}
.developer-section-heading{margin-top:28px}
.developer-app-card-copy>small{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:12px;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.developer-app-card-copy>span{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:3px}
.developer-app-card-copy>span em{color:var(--muted);font-size:11px;font-style:normal}
.developer-app-header{position:relative;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;padding:16px 18px;margin-bottom:16px}
.developer-app-header>.developer-app-avatar{width:52px;height:52px;border-radius:15px}
.developer-app-header h1{font-size:22px}
.developer-app-header p{display:-webkit-box;overflow:hidden;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.developer-tabs{position:sticky;top:0;z-index:4;margin-bottom:16px;background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(12px)}
.developer-tabs>button{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;min-height:38px;padding:0 13px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-weight:700}
.developer-tabs>button:hover{background:var(--hover);color:var(--text)}
.developer-tabs>button.active{background:var(--accent);color:#fff}
.developer-tabs>button svg{width:16px;height:16px}
.developer-settings-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.85fr);align-items:start;gap:16px}
.developer-settings-column{display:grid;gap:16px;min-width:0}
.developer-profile-settings{display:grid;gap:16px}
.developer-panel-heading.compact{margin-bottom:14px}
.developer-credential-list{display:grid;gap:13px}
.developer-credential-list>div{min-width:0}
.developer-detail-field{display:grid;gap:7px}
.developer-detail-field>span{color:var(--text);font-size:12px;font-weight:800}
.developer-detail-field>strong{min-height:39px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--input);color:var(--muted);font-size:12px;font-weight:500}
.developer-settings-column .danger-zone{display:grid;gap:16px;border-color:color-mix(in srgb,var(--danger) 42%,var(--border));background:color-mix(in srgb,var(--danger) 5%,var(--panel))}
.developer-settings-column .danger-zone h2{margin:0;color:var(--strong);font-size:17px}
.developer-settings-column .danger-zone p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.developer-settings-column .danger-zone button{justify-self:start}
.developer-bot-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:16px}
.developer-bot-overview-grid>.developer-panel{min-width:0}
.developer-token-summary{grid-template-columns:auto minmax(0,1fr);align-items:start;padding:15px}
.developer-token-summary>span{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:var(--panel);color:var(--muted)}
.developer-token-summary>span svg{width:18px;height:18px}
.developer-token-summary>button{grid-column:1/-1;width:100%!important}
.developer-token-summary em{color:var(--muted);font-size:11px;font-style:normal}
.developer-bot-overview-grid .developer-token-warning{margin-top:10px}
.developer-application-docs{display:grid;gap:16px}
.developer-app-doc-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);align-items:center;gap:24px}
.developer-app-doc-intro h2{margin:0;color:var(--strong);font-size:20px}
.developer-app-doc-intro p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
.developer-docs{display:block}
.developer-doc-header{display:block;margin-bottom:22px}
.developer-doc-layout{display:grid;grid-template-columns:210px minmax(0,1fr);align-items:start;gap:26px}
.developer-doc-nav{position:sticky;top:18px;display:grid;gap:4px;padding:12px;border:1px solid var(--border);border-radius:13px;background:var(--panel)}
.developer-doc-nav>strong{padding:5px 8px 9px;color:var(--strong);font-size:12px}
.developer-doc-nav>a{padding:8px;border-radius:8px;color:var(--muted);font-size:12px;text-decoration:none;line-height:1.25}
.developer-doc-nav>a:hover{background:var(--hover);color:var(--text)}
.developer-doc-content{display:grid;gap:36px;min-width:0}
.developer-doc-section{display:grid;gap:14px;min-width:0;scroll-margin-top:72px}
.developer-doc-section-heading{display:flex;align-items:flex-start;gap:12px}
.developer-doc-section-heading>span{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:28px;height:28px;border-radius:9px;background:color-mix(in srgb,var(--accent) 17%,var(--input));color:var(--accent);font-size:12px;font-weight:900}
.developer-doc-section-heading h2{margin:1px 0 0;color:var(--strong);font-size:23px}
.developer-doc-section-heading p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
.developer-step-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.developer-doc-step{display:flex;align-items:flex-start;gap:11px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}
.developer-doc-step>span{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:27px;height:27px;border-radius:8px;background:var(--input);color:var(--accent);font-size:11px;font-weight:900}
.developer-doc-step strong{color:var(--strong);font-size:13px}
.developer-doc-step p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.developer-doc-card{min-width:0;padding:20px}
.developer-doc-card h2,.developer-doc-card h3{margin:0;color:var(--strong)}
.developer-doc-card h3{font-size:15px}
.developer-doc-card>p code{color:var(--text)}
.developer-doc-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.developer-doc-two-column.compact{gap:18px}
.developer-doc-two-column>*,.developer-doc-two-column.compact>div{min-width:0}
.developer-callout{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--accent) 7%,var(--input))}
.developer-callout.warning{border-color:color-mix(in srgb,var(--yellow) 36%,var(--border));background:color-mix(in srgb,var(--yellow) 8%,var(--input))}
.developer-callout svg{flex:0 0 auto;width:18px;height:18px;color:var(--accent)}
.developer-callout.warning svg{color:var(--yellow)}
.developer-callout p{margin:0!important;color:var(--text)!important;font-size:12px!important;line-height:1.5!important}
.developer-code-block{padding:0;border-radius:11px;white-space:normal}
.developer-code-block pre{min-width:max-content;margin:0;padding:17px 52px 17px 17px;color:inherit;font:inherit;white-space:pre}
.developer-code-block code{font:inherit}
.developer-endpoint-list{gap:1px;overflow:hidden;border:1px solid var(--border);border-radius:11px;background:var(--border)}
.developer-endpoint{grid-template-columns:64px minmax(250px,.9fr) minmax(220px,1.1fr);gap:12px;padding:11px 12px;border-radius:0;background:var(--panel)}
.developer-endpoint .method{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:3px 7px;border-radius:6px;background:var(--input);color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.035em}
.developer-endpoint .method.get{background:color-mix(in srgb,#23a55a 15%,var(--input));color:#3ba55d}
.developer-endpoint .method.post{background:color-mix(in srgb,var(--accent) 17%,var(--input));color:var(--accent)}
.developer-endpoint .method.patch{background:color-mix(in srgb,var(--yellow) 15%,var(--input));color:var(--yellow)}
.developer-endpoint .method.put{background:color-mix(in srgb,#3498db 17%,var(--input));color:#5dade2}
.developer-endpoint .method.delete{background:color-mix(in srgb,var(--danger) 14%,var(--input));color:#ef6b70}
.developer-endpoint code{font-size:11px;line-height:1.4}
.developer-endpoint p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}
.developer-language-card{padding:0;overflow:hidden}
.developer-language-tabs{display:flex;gap:2px;overflow-x:auto;padding:8px;border-bottom:1px solid var(--border);background:var(--input);scrollbar-width:thin}
.developer-language-tabs button{flex:0 0 auto;min-height:32px;padding:0 11px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:11px;font-weight:750}
.developer-language-tabs button:hover{background:var(--hover);color:var(--text)}
.developer-language-tabs button.active{background:var(--panel);color:var(--strong);box-shadow:0 0 0 1px var(--border)}
.developer-language-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:17px 18px 12px}
.developer-language-heading h3{margin:0}
.developer-language-heading p{margin:5px 0 0;color:var(--muted);font-size:12px}
.developer-language-heading>span{flex:0 0 auto;padding:4px 7px;border-radius:6px;background:color-mix(in srgb,var(--accent) 13%,var(--input));color:var(--accent);font-size:9px;font-weight:900;text-transform:uppercase}
.developer-language-card>.developer-code-block{margin:0 18px 18px}
.developer-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.developer-status-grid>div{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:8px;padding:10px;border-radius:9px;background:var(--input)}
.developer-status-grid strong{color:var(--strong);font:800 11px/1.2 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.developer-status-grid span{color:var(--muted);font-size:11px;line-height:1.35}
.developer-intent-reference{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.developer-intent-reference>div{padding:12px;border-radius:9px;background:var(--input)}
.developer-intent-reference strong{color:var(--strong);font-size:12px}
.developer-intent-reference em{padding:2px 5px;border-radius:4px;background:color-mix(in srgb,var(--yellow) 18%,transparent);color:var(--yellow);font-size:8px;font-style:normal;text-transform:uppercase}
.developer-intent-reference p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.4}
.developer-security-list{display:grid;gap:9px;margin:0;padding-left:22px;color:var(--text);font-size:12px;line-height:1.5}
@media(max-width:1050px){.developer-settings-grid{grid-template-columns:minmax(0,1fr)}.developer-bot-overview-grid{grid-template-columns:1fr}.developer-doc-layout{grid-template-columns:180px minmax(0,1fr)}.developer-endpoint{grid-template-columns:60px minmax(0,1fr)}.developer-endpoint p{grid-column:2}.developer-app-doc-intro{grid-template-columns:1fr}}
@media(max-width:820px){.developer-doc-layout{grid-template-columns:1fr}.developer-doc-nav{position:static;display:flex;overflow-x:auto;padding:7px}.developer-doc-nav>strong{display:none}.developer-doc-nav>a{flex:0 0 auto;white-space:nowrap}.developer-step-grid,.developer-doc-two-column,.developer-status-grid,.developer-intent-reference{grid-template-columns:1fr}}

/* v1.1.1.1 Aurora: Developer Portal action and copy-button alignment. */
.developer-portal-header>.primary,
.developer-create-bot-panel .primary,
.developer-open-full-docs,
.developer-settings-column .danger-zone>button,
.developer-form-actions>button,
.developer-authorize-actions>button,
.developer-server-row>button,
.developer-token-summary>button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:38px;
  max-width:100%;
  white-space:nowrap;
}
.developer-portal-header>.primary{flex:0 0 auto}
.developer-form-actions,.developer-authorize-actions{flex-wrap:wrap;align-items:center}
.developer-form-actions>button,.developer-authorize-actions>button{flex:0 1 auto}
.developer-form-actions.sticky{position:sticky;bottom:0;z-index:3;margin:0 -2px -2px;padding:12px 2px 2px;background:linear-gradient(to bottom,transparent,var(--bg) 24%)}
.developer-create-bot-panel{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:20px}
.developer-create-bot-panel>div{display:grid;justify-items:start;gap:8px;min-width:0}
.developer-create-bot-panel h2,.developer-create-bot-panel p{margin:0}
.developer-create-bot-panel p{color:var(--muted);font-size:13px;line-height:1.5}
.developer-settings-column .danger-zone>button,.developer-open-full-docs{justify-self:start;width:auto!important}
.developer-server-row>button{min-width:92px}
.developer-token-summary>button{justify-self:stretch}
.developer-copy-field{align-items:stretch;grid-template-columns:minmax(0,1fr) 38px}
.developer-copy-field>code{
  display:flex;
  align-items:center;
  min-width:0;
  min-height:38px;
  overflow:hidden;
  padding:9px 11px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--input);
  color:var(--muted);
  font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.developer-copy-button,
.developer-copy,
.developer-copy-install-url,
.developer-copy-token{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 38px!important;
  width:38px!important;
  min-width:38px!important;
  height:38px!important;
  min-height:38px!important;
  padding:0!important;
  border-radius:8px!important;
  font-size:0!important;
}
.developer-copy-button svg,
.developer-copy svg,
.developer-copy-install-url svg,
.developer-copy-token svg{
  width:16px!important;
  height:16px!important;
  margin:0!important;
  pointer-events:none;
}
.developer-token-reveal{align-items:stretch;grid-template-columns:minmax(0,1fr) 38px}
.developer-token-reveal textarea{min-width:0;resize:none}
.developer-code-block .developer-copy-button{position:absolute;top:8px;right:8px;z-index:2;background:color-mix(in srgb,var(--panel) 88%,transparent)}
.developer-code-block .developer-copy-button:hover{background:var(--hover)}
.developer-language-tabs button{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
@media(max-width:900px){
  .developer-portal-header>.primary{width:auto!important}
  .developer-server-row>button{min-width:84px}
}

/* v1.1.1.4 Aurora: refined bot identity card and avatar-only upload control. */
.developer-panel-heading>div{min-width:0}
.developer-panel-heading h2,.developer-panel-heading p{overflow-wrap:anywhere}
.developer-bot-profile{
  display:grid;
  grid-template-columns:minmax(280px,.78fr) minmax(300px,1.22fr);
  align-items:stretch;
  gap:0;
  margin-bottom:20px;
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--input);
}
.developer-bot-avatar-preview{
  position:relative;
  display:inline-grid;
  place-items:center;
  width:88px;
  height:88px;
  min-width:88px;
  padding:0;
  overflow:visible;
  border:0;
  border-radius:26px;
  background:transparent;
}
.developer-bot-avatar-preview .developer-app-avatar.bot{width:88px;height:88px;border-radius:26px;font-size:24px;box-shadow:inset 0 0 0 1px rgb(255 255 255 / .13),0 8px 24px rgb(0 0 0 / .18)}
.developer-bot-profile-fields{display:grid;align-content:center;gap:13px;min-width:0;padding:18px;border-left:1px solid var(--border)}
.developer-bot-username-field{display:grid;align-content:center;gap:7px;min-width:0}
.developer-bot-username-field>.field{width:100%;min-width:0}
.developer-bot-profile-hint{display:flex;align-items:flex-start;gap:8px;color:var(--muted);font-size:11px;font-weight:500;line-height:1.45}
.developer-bot-profile-hint .app-icon{width:15px;height:15px;flex:none;margin-top:1px;color:var(--accent)}
.developer-bot-form .developer-toggle-row:last-child{border-bottom:0;padding-bottom:0}
.developer-token-summary>span:first-child{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--panel);color:var(--muted)}
.developer-token-summary>span:first-child svg{width:17px;height:17px}
@media(max-width:820px){
  .developer-bot-profile{grid-template-columns:1fr}
  .developer-bot-profile-fields{border-left:0;border-top:1px solid var(--border)}
}

/* v1.1.1.5 Aurora: cohesive Bot Profile identity editor. */
.developer-bot-profile{
  grid-template-columns:156px minmax(0,1fr);
  align-items:center;
  gap:22px;
  padding:20px;
  overflow:visible;
  border:1px solid var(--border);
  border-radius:14px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--panel) 88%,var(--input)),var(--input));
}
.developer-bot-avatar-area{
  display:grid;
  justify-items:center;
  align-content:center;
  gap:6px;
  min-width:0;
  text-align:center;
}
.developer-bot-avatar-area>strong{
  margin-top:4px;
  color:var(--strong);
  font-size:12px;
  line-height:1.3;
}
.developer-bot-avatar-area>small{
  max-width:145px;
  color:var(--muted);
  font-size:10px;
  font-weight:500;
  line-height:1.45;
}
.developer-bot-avatar-control{
  position:relative;
  display:inline-grid;
  place-items:center;
  width:96px;
  height:96px;
}
.developer-bot-avatar-preview,
.developer-bot-avatar-preview .developer-app-avatar.bot{
  width:92px;
  height:92px;
  min-width:92px;
  border-radius:28px;
}
.developer-bot-avatar-preview .developer-app-avatar.bot{
  box-shadow:inset 0 0 0 1px rgb(255 255 255 / .13),0 10px 28px rgb(0 0 0 / .2);
}
.developer-bot-avatar-remove{
  position:absolute;
  top:-7px;
  right:-9px;
  z-index:3;
  grid-column:auto;
  grid-row:auto;
  width:32px;
  min-width:32px;
  height:32px;
  min-height:32px;
  padding:0;
  border-radius:50%;
  box-shadow:0 5px 14px rgb(0 0 0 / .22);
}
.developer-bot-profile-fields{
  display:grid;
  align-content:center;
  gap:12px;
  min-width:0;
  padding:0;
  border:0;
}
.developer-bot-username-field{
  display:grid;
  gap:8px;
  min-width:0;
  max-width:520px;
  color:var(--strong);
}
.developer-bot-username-field>span{
  font-size:12px;
  font-weight:800;
  line-height:1.3;
}
.developer-bot-username-field>.field{
  width:100%;
  min-width:0;
  min-height:44px;
  font-size:14px;
  font-weight:650;
}
.developer-bot-profile-hint{
  max-width:520px;
  margin:0;
  padding:10px 12px;
  border:1px solid color-mix(in srgb,var(--accent) 18%,var(--border));
  border-radius:9px;
  background:color-mix(in srgb,var(--accent) 5%,transparent);
}
@media(max-width:820px){
  .developer-bot-profile{
    grid-template-columns:132px minmax(0,1fr);
    gap:18px;
    padding:18px;
  }
  .developer-bot-profile-fields{border:0}
}
@media(max-width:560px){
  .developer-bot-profile{
    grid-template-columns:1fr;
    justify-items:stretch;
    gap:18px;
    padding:16px;
  }
  .developer-bot-avatar-area{
    grid-template-columns:auto minmax(0,1fr);
    grid-template-rows:auto auto;
    justify-items:start;
    column-gap:16px;
    text-align:left;
  }
  .developer-bot-avatar-control{
    grid-row:1/3;
    width:82px;
    height:82px;
  }
  .developer-bot-avatar-preview,
  .developer-bot-avatar-preview .developer-app-avatar.bot{
    width:78px;
    height:78px;
    min-width:78px;
    border-radius:23px;
  }
  .developer-bot-avatar-area>strong{align-self:end;margin:0}
  .developer-bot-avatar-area>small{align-self:start;max-width:none}
  .developer-bot-avatar-remove{
    top:-6px;
    right:-8px;
    width:30px;
    min-width:30px;
    height:30px;
    min-height:30px;
  }
  .developer-bot-username-field,
  .developer-bot-profile-hint{max-width:none}
}

/* Discord-style message Markdown */
.message .content .markdown-heading{display:block;margin:.18em 0 .08em;color:var(--strong);font-weight:800;line-height:1.25}
.message .content .markdown-heading.level-1{font-size:1.42em}.message .content .markdown-heading.level-2{font-size:1.22em}.message .content .markdown-heading.level-3{font-size:1.08em}
.message .content .markdown-blockquote{display:block;margin:2px 0;padding:2px 0 2px 10px;border-left:4px solid color-mix(in srgb,var(--muted) 65%,transparent);color:var(--text)}
.message .content .markdown-list-item{display:flex;gap:8px;padding-left:8px}.message .content .markdown-list-item>span:first-child{flex:0 0 20px;text-align:right;color:var(--muted)}
.message .content .markdown-inline-code{padding:1px 4px;border-radius:4px;background:var(--rail);color:var(--strong);font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.message .content .markdown-code-block{position:relative;display:block;max-width:100%;margin:6px 0;padding:12px;border:1px solid color-mix(in srgb,var(--muted) 24%,transparent);border-radius:6px;background:var(--rail);overflow:auto;white-space:pre}
.message .content .markdown-code-block code{font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--text)}
.message .content .markdown-code-language{display:block;margin:-3px 0 7px;color:var(--muted);font:10px/1.2 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-transform:uppercase}
.message .content .markdown-spoiler{display:inline;border-radius:3px;padding:0 3px;background:var(--rail);color:transparent;cursor:pointer;outline:none;transition:background .12s,color .12s}
.message .content .markdown-spoiler:hover,.message .content .markdown-spoiler:focus,.message .content .markdown-spoiler.revealed{background:color-mix(in srgb,var(--rail) 72%,var(--muted));color:var(--text)}
.message .content s{color:var(--muted)}.message .content a{color:#00a8fc;text-decoration:none}.message .content a:hover{text-decoration:underline}

.developer-field-help{display:block;margin-top:7px;color:var(--muted);font-size:11px;font-weight:500;line-height:1.45}


/* Native message embeds */
.message-embed{--embed-color:#5865f2;position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;width:min(100%,520px);margin-top:6px;padding:14px 14px 14px 16px;border-radius:4px;background:var(--background-secondary,#2b2d31);overflow:hidden;box-sizing:border-box}
.message-embed::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--embed-color);border-radius:4px 0 0 4px}
.message-embed-body{min-width:0;display:flex;flex-direction:column;gap:8px}
.message-embed-author,.message-embed-author a{display:flex;align-items:center;gap:8px;color:var(--header-primary,#f2f3f5);font-size:12px;font-weight:700;text-decoration:none;min-width:0}
.message-embed-author img,.message-embed-footer img{width:20px;height:20px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.message-embed-title{color:var(--header-primary,#f2f3f5);font-size:16px;line-height:1.25;font-weight:700;overflow-wrap:anywhere}
.message-embed-title a{color:var(--text-link,#00a8fc);text-decoration:none}.message-embed-title a:hover{text-decoration:underline}
.message-embed-description,.message-embed-field>div{color:var(--text-normal,#dbdee1);font-size:14px;line-height:1.35;white-space:pre-wrap;overflow-wrap:anywhere}
.message-embed-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:10px 16px;margin-top:2px}
.message-embed-field{min-width:0}.message-embed-field.inline{display:inline-block}.message-embed-fields:has(.message-embed-field.inline){grid-template-columns:repeat(3,minmax(0,1fr))}
.message-embed-field:not(.inline){grid-column:1/-1}.message-embed-field strong{display:block;margin-bottom:3px;color:var(--header-primary,#f2f3f5);font-size:13px;line-height:1.2;overflow-wrap:anywhere}
.message-embed-thumbnail{width:80px;height:80px;border-radius:4px;object-fit:cover;flex:0 0 auto}
.message-embed-image{display:block;width:min(100%,400px);padding:0;border:0;background:transparent;cursor:zoom-in;border-radius:4px;overflow:hidden}.message-embed-image img{display:block;width:100%;max-height:300px;object-fit:cover}
.message-embed-footer{display:flex;align-items:center;gap:8px;color:var(--text-muted,#949ba4);font-size:12px;line-height:1.25;margin-top:2px}.message-embed-footer img{width:18px;height:18px}.message-embed-footer-dot{margin:0 5px}
@media (max-width:700px){.message-embed{width:100%;gap:10px;padding:12px 10px 12px 14px}.message-embed-fields:has(.message-embed-field.inline){grid-template-columns:repeat(2,minmax(0,1fr))}.message-embed-thumbnail{width:64px;height:64px}}

/* Developer Bot API dispatch reference */
.developer-event-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin:14px 0}.developer-event-type-grid code{display:block;min-width:0;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);overflow-wrap:anywhere}

/* Developer Bot API dispatch reference */
.developer-event-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin:14px 0}.developer-event-type-grid code{display:block;min-width:0;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--input-bg);overflow-wrap:anywhere}

/* v1.6.0.1 theme-aware embed identity and avatar rendering */
.message-embed{
  background:var(--settings-card-bg,var(--panel));
  color:var(--text);
  border:1px solid var(--settings-border,color-mix(in srgb,var(--muted) 24%,transparent));
  box-shadow:0 1px 0 color-mix(in srgb,var(--strong) 3%,transparent);
}
.message-embed-author,.message-embed-author a,
.message-embed-title,.message-embed-field strong{color:var(--strong)}
.message-embed-description,.message-embed-field>div{color:var(--text)}
.message-embed-footer{color:var(--muted)}
.message-embed-title{display:flex;align-items:center;gap:6px;min-width:0}
.message-embed-title-profile{
  min-width:0;padding:0;border:0;background:transparent;color:var(--strong);
  font:inherit;font-weight:inherit;line-height:inherit;text-align:left;
  overflow-wrap:anywhere;cursor:pointer;
}
.message-embed-title-profile:hover{text-decoration:underline}
.message-embed-title-profile:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
.message-embed-title a.message-embed-title-external{display:inline-grid;place-items:center;flex:none;color:var(--muted);text-decoration:none}
.message-embed-title a.message-embed-title-external:hover{color:var(--accent);text-decoration:none}
.message-embed-title-external .app-icon{width:14px;height:14px}
.message-embed-thumbnail,.message-embed-author img,.message-embed-footer img{background:var(--input)}
:root[data-theme="light"] .message-embed{
  background:#fff;
  border-color:#cfd2d7;
  box-shadow:0 1px 2px rgba(0,0,0,.05);
}

/* v1.6.0.12 — complete emoji browsing, pagination, and picker states. */
.emoji-tabs button.active{background:color-mix(in srgb,var(--accent) 18%,var(--hover));filter:none;opacity:1;box-shadow:inset 0 -2px var(--accent)}
.emoji-empty{display:grid;place-items:center;min-height:180px;padding:24px;color:var(--muted);text-align:center}
.emoji-load-more{display:block;width:100%;min-height:38px;margin:10px 0 2px;border:0;border-radius:7px;background:var(--hover);color:var(--strong);font-weight:700;cursor:pointer}
.emoji-load-more:hover,.emoji-load-more:focus-visible{background:color-mix(in srgb,var(--accent) 22%,var(--hover));outline:2px solid color-mix(in srgb,var(--accent) 70%,transparent);outline-offset:1px}
.status-emoji-load-more{grid-column:1/-1;margin:8px 0 0}
.emoji-grid button,.status-emoji-option{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}


/* v1.6.0.13 — independent custom-status emoji overlay and picker reliability. */
body>.detached-status-emoji-picker{position:fixed;z-index:190;margin:0!important;width:min(390px,calc(100vw - 16px));max-height:min(430px,calc(100dvh - 16px));box-sizing:border-box;overscroll-behavior:contain}
body>.detached-status-emoji-picker .status-emoji-scroll{min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
body>.detached-status-emoji-picker .status-emoji-option{touch-action:manipulation}
body>.detached-status-emoji-picker .status-emoji-load-more{flex:none}

/* v1.6.0.14 — one shared emoji picker for messages, reactions and custom status. */
body>.emoji-picker{
  position:fixed;
  z-index:2147482500!important;
  display:grid;
  grid-template-rows:auto auto auto minmax(0,1fr);
  width:min(400px,calc(100vw - 16px));
  height:min(440px,calc(100dvh - 16px));
  min-width:0;
  min-height:120px;
  max-width:calc(100vw - 16px);
  max-height:calc(100dvh - 16px);
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--muted) 25%,transparent);
  border-radius:12px;
  background:var(--panel-2,var(--panel));
  color:var(--text);
  box-shadow:0 20px 60px rgba(0,0,0,.58);
  overscroll-behavior:contain;
}
.emoji-picker-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
  padding:10px 10px 8px 12px;
}
.emoji-picker-heading,.emoji-picker-actions{display:flex;align-items:center;gap:8px;min-width:0}
.emoji-picker-heading strong{overflow:hidden;color:var(--strong);font-size:14px;white-space:nowrap;text-overflow:ellipsis}
.emoji-picker-preview{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  flex:none;
  border-radius:8px;
  background:color-mix(in srgb,var(--accent) 16%,var(--input));
  font:22px/1 "Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;
}
.emoji-picker-actions .icon-btn{width:34px;height:34px;padding:7px;display:grid;place-items:center}
.emoji-clear{
  min-height:30px;
  padding:5px 8px;
  border:0;
  border-radius:6px;
  background:transparent;
  color:var(--link,#00a8fc);
  font-weight:700;
  cursor:pointer;
}
.emoji-clear:hover,.emoji-clear:focus-visible{background:var(--hover);outline:none}
body>.emoji-picker .emoji-search-row{
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 10px 9px;
}
body>.emoji-picker .emoji-search-row>.app-icon{width:17px;height:17px;flex:none;color:var(--muted)}
body>.emoji-picker .emoji-search{
  min-width:0;
  height:36px;
  padding:8px 10px;
  border:1px solid transparent;
  background:var(--input);
}
body>.emoji-picker .emoji-search:focus{border-color:color-mix(in srgb,var(--accent) 72%,transparent)}
body>.emoji-picker .emoji-tabs{
  display:flex;
  align-items:center;
  gap:2px;
  min-width:0;
  min-height:40px;
  padding:0 8px 7px;
  overflow-x:auto;
  overflow-y:hidden;
  border-bottom:1px solid color-mix(in srgb,var(--muted) 20%,transparent);
  scrollbar-width:none;
}
body>.emoji-picker .emoji-tabs::-webkit-scrollbar{display:none}
body>.emoji-picker .emoji-tabs button{
  width:34px;
  height:32px;
  display:grid;
  place-items:center;
  flex:none;
  padding:0;
  border:0;
  border-radius:7px;
  background:transparent;
  font-size:17px;
  filter:grayscale(.75);
  opacity:.72;
  cursor:pointer;
}
body>.emoji-picker .emoji-tabs button:hover,body>.emoji-picker .emoji-tabs button:focus-visible{background:var(--hover);filter:none;opacity:1;outline:none}
body>.emoji-picker .emoji-tabs button.active{background:color-mix(in srgb,var(--accent) 20%,var(--hover));filter:none;opacity:1;box-shadow:inset 0 -2px var(--accent)}
body>.emoji-picker .emoji-results{
  min-width:0;
  min-height:0;
  overflow:auto;
  padding:8px 9px 10px;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
body>.emoji-picker .emoji-results h4{
  position:sticky;
  top:-8px;
  z-index:2;
  margin:0 0 5px;
  padding:7px 2px 5px;
  background:var(--panel-2,var(--panel));
  color:var(--muted);
  font-size:11px;
  letter-spacing:.04em;
  text-transform:uppercase;
}
body>.emoji-picker .emoji-grid{
  display:grid;
  grid-template-columns:repeat(8,minmax(0,1fr));
  gap:3px;
}
body>.emoji-picker .emoji-grid button{
  width:100%;
  min-width:0;
  min-height:38px;
  aspect-ratio:1;
  padding:0;
  border:0;
  border-radius:7px;
  background:transparent;
  color:var(--strong);
  font:22px/1 "Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;
  cursor:pointer;
  touch-action:manipulation;
  transition:background .12s ease,transform .12s ease;
}
body>.emoji-picker .emoji-grid button:hover,body>.emoji-picker .emoji-grid button:focus-visible{background:var(--hover);transform:scale(1.1);outline:none}
body>.emoji-picker .emoji-grid button.selected{background:color-mix(in srgb,var(--accent) 34%,var(--hover));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 72%,transparent)}
body>.emoji-picker .emoji-empty{min-height:140px}
:root[data-theme="light"] body>.emoji-picker{background:#fff;color:#060607;border-color:#c7c9cd;box-shadow:0 16px 46px rgba(0,0,0,.28)}
:root[data-theme="light"] body>.emoji-picker .emoji-results h4{background:#fff}
:root[data-theme="light"] body>.emoji-picker .emoji-search{background:#ebedef;color:#060607}


/* v1.6.0.15 — reliable unified emoji overlay and complete color flag rendering. */
@font-face{
  font-family:"Application Color Emoji";
  src:url("../fonts/noto-color-emoji-v39.woff2") format("woff2");
  font-style:normal;
  font-weight:400;
  font-display:swap;
  unicode-range:U+1F1E6-1F1FF,U+1F3C1,U+1F3F3-1F3F4,U+1F6A9,U+1F38C,U+1F308,U+26A7,U+2620,U+FE0F,U+200D,U+E0061-E007A,U+E007F;
}
body{font-family:"Application Color Emoji",Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}
.emoji-glyph,
.emoji-picker-preview,
body>.emoji-picker .emoji-tabs button,
body>.emoji-picker .emoji-grid button,
.status-emoji-trigger,
.settings-status-emoji-trigger{
  font-family:"Application Color Emoji","Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif!important;
  font-variant-emoji:emoji;
  font-synthesis:none;
}
.custom-status-text .emoji-glyph{
  display:inline-block;
  width:1.15em;
  min-width:1.15em;
  height:1.15em;
  vertical-align:-.18em;
  line-height:1;
}
.status-emoji-trigger .emoji-glyph,
.settings-status-emoji-trigger .emoji-glyph{
  display:inline-grid;
  width:1.2em;
  height:1.2em;
  place-items:center;
  line-height:1;
  pointer-events:none;
}
body>.emoji-picker{
  isolation:isolate;
  contain:layout style;
  box-sizing:border-box;
}


/* v1.6.0.16 — Discord-style stable emoji picker geometry. */
body>.emoji-picker{
  width:min(360px,calc(100vw - 16px));
  height:min(420px,calc(100dvh - 16px));
  overflow-anchor:none;
  contain:size layout style;
}
body>.emoji-picker .emoji-picker-head,
body>.emoji-picker .emoji-search-row,
body>.emoji-picker .emoji-tabs{
  flex:none;
  overflow-anchor:none;
}
body>.emoji-picker .emoji-results{
  scrollbar-gutter:stable;
  overflow-anchor:none;
}
body>.emoji-picker .emoji-grid{
  align-content:start;
}

/* v1.6.0.18 Pulse: Developer Portal structure-matched loading skeletons. */
.sk-developer-region{width:100%;height:100%;min-height:0;overflow:auto;background:var(--bg)}
.sk-developer-page{width:min(1240px,calc(100% - 56px));margin:0 auto;padding:34px 0 72px}
.sk-developer-portal-header,.sk-developer-app-header{display:flex;align-items:center;gap:16px;padding:4px 2px 26px;border-bottom:1px solid var(--skeleton-edge)}
.sk-developer-portal-header{justify-content:space-between}
.sk-developer-header-copy{display:grid;gap:10px;min-width:0;flex:1}
.sk-developer-header-copy>.sk-line-xl{max-width:620px}
.sk-developer-section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 2px 16px}
.sk-developer-section-heading>div{display:grid;gap:8px;min-width:0}
.sk-developer-app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:16px}
.sk-developer-app-card{min-height:112px;display:flex;align-items:center;gap:14px;padding:17px;border:1px solid var(--skeleton-edge);border-radius:15px;background:var(--panel)}
.sk-developer-card-copy{display:grid;gap:9px;min-width:0;flex:1}
.sk-developer-card-copy>.sk-line-xl{width:min(100%,240px)}
.sk-developer-app-card>.sk-action{margin-left:auto}
.sk-developer-app-header>.sk-action{width:36px;height:36px;border-radius:9px}
.sk-developer-app-header>.sk-avatar{width:72px;height:72px;border-radius:18px}
.sk-developer-header-status{display:grid;justify-items:end;gap:9px;margin-left:auto}
.sk-developer-tabs{display:flex;gap:7px;padding:14px 0 20px;overflow:hidden}
.sk-tab-pill{width:132px;height:36px;border-radius:9px}
.sk-developer-settings-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);align-items:start;gap:16px}
.sk-developer-panel{display:grid;gap:16px;padding:24px;border:1px solid var(--skeleton-edge);border-radius:15px;background:var(--panel)}
.sk-developer-panel>div:first-child{display:grid;gap:8px}
.sk-developer-panel-large{min-height:410px}
.sk-developer-side-column{display:grid;gap:16px}
.sk-developer-field{display:grid;gap:8px}
.sk-input-line{width:100%;height:42px;border-radius:8px}
.sk-developer-field-tall>.sk-input-line{height:138px}
.sk-developer-detail{display:grid;gap:7px;padding:12px;border-radius:10px;background:color-mix(in srgb,var(--input) 65%,transparent)}
.sk-developer-authorization{display:grid;place-items:center;padding:24px}
.sk-developer-authorize-card{width:min(520px,100%);display:grid;justify-items:stretch;gap:16px;padding:28px;border:1px solid var(--skeleton-edge);border-radius:18px;background:var(--panel)}
.sk-developer-authorize-card>.sk-title-line{justify-self:center;width:min(260px,82%)}
.sk-developer-authorize-card>.sk-line-sm{justify-self:center}
.sk-developer-authorize-card>.sk-line-xl{justify-self:center;width:min(420px,92%)}
.sk-developer-authorize-brand{display:flex;align-items:center;justify-content:center;gap:13px;margin-bottom:4px}
.sk-developer-arrow{width:24px;height:10px;border-radius:5px;background:var(--skeleton-base)}
.sk-developer-server{width:72px;height:72px;border-radius:22px;background:var(--skeleton-raised)}
.sk-developer-permission-box{display:grid;gap:8px;padding:16px;border-radius:12px;background:var(--input)}
.sk-developer-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}
.developer-sidebar-skeleton{display:grid;gap:3px;padding:2px 8px 8px;pointer-events:none}
.developer-sidebar-skeleton-row{height:44px;display:flex;align-items:center;gap:9px;padding:5px 8px;border-radius:7px}
.developer-sidebar-skeleton-row>span:last-child{display:grid;gap:6px;min-width:0;flex:1}
.developer-sidebar-skeleton-row .sk-block{display:block}
@media(max-width:1050px){.sk-developer-settings-grid{grid-template-columns:1fr}.sk-developer-side-column{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
 .sk-developer-page{width:calc(100% - 24px);padding:20px 0 92px}
 .sk-developer-portal-header,.sk-developer-app-header{align-items:flex-start;padding-bottom:18px}
 .sk-developer-portal-header>.sk-button-pill{width:92px}
 .sk-developer-app-header>.sk-avatar{width:56px;height:56px}
 .sk-developer-header-status{display:none}
 .sk-developer-tabs{padding:11px 0 16px}.sk-tab-pill{width:104px;flex:0 0 auto}
 .sk-developer-app-grid{grid-template-columns:1fr}
 .sk-developer-side-column{grid-template-columns:1fr}
 .sk-developer-panel{padding:18px}
 .sk-developer-authorization{align-items:start;padding:16px 12px 88px}
 .sk-developer-authorize-card{margin-top:16px;padding:22px 18px}
}
.sk-developer-arrow,.sk-developer-server{position:relative;display:block;overflow:hidden}
.sk-developer-arrow::after,.sk-developer-server::after{content:"";position:absolute;inset:0;transform:translateX(-105%);background:linear-gradient(90deg,transparent,var(--skeleton-highlight),transparent);animation:app-skeleton-wave 1.45s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.sk-developer-arrow::after,.sk-developer-server::after{animation:none;opacity:.45}}

/* v1.6.0.21 — essential session disclosure and opt-in persistent login. */
.cookie-consent{position:fixed;z-index:2147483000;left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;max-width:920px;margin-inline:auto;padding:16px 18px;border:1px solid var(--border,#3f4147);border-radius:14px;background:var(--background-secondary,#2b2d31);box-shadow:0 18px 48px rgb(0 0 0/.38);color:var(--text-normal,#dbdee1)}
.cookie-consent-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:color-mix(in srgb,var(--brand,#5865f2) 18%,transparent);color:var(--brand,#5865f2)}
.cookie-consent-icon .app-icon{width:22px;height:22px}
.cookie-consent-copy{min-width:0}.cookie-consent-copy strong{display:block;margin-bottom:4px;font-size:16px;color:var(--header-primary,#f2f3f5)}.cookie-consent-copy p{margin:0;line-height:1.45;font-size:13px;color:var(--text-normal,#dbdee1)}.cookie-consent-copy small{display:block;margin-top:6px;color:var(--text-muted,#949ba4)}.cookie-consent-error{margin-top:8px;padding:7px 9px}
.cookie-consent-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;white-space:nowrap}.cookie-consent-actions button{min-height:38px}
.auth-cookie-settings{display:block;margin:10px auto 0;font-size:12px}.account-cookie-card{display:flex;align-items:center;justify-content:space-between;gap:18px}.account-cookie-card>div{display:grid;gap:5px}.account-cookie-card small{color:var(--text-muted,#949ba4);line-height:1.4}


/* v1.6.0.25 Pulse — account security and two-factor authentication. */
.auth-two-factor-card{max-width:440px}
.auth-security-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 12px;border-radius:17px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}
.auth-security-icon .app-icon{width:27px;height:27px}
.auth-two-factor-card>p{margin:0 0 18px;color:var(--muted);line-height:1.5;text-align:center}
.auth-two-factor-card .auth-two-factor-code{font-variant-numeric:tabular-nums;letter-spacing:.08em}
.security-locked-card,.security-summary-card,.security-action-card,.security-error-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}
.security-locked-card>div:not(.security-card-icon),.security-summary-card>div:not(.security-card-icon),.security-action-card>div,.security-error-card>div{min-width:0;flex:1}
.security-locked-card strong,.security-summary-card strong,.security-action-card strong,.security-error-card strong{display:block;margin-bottom:5px}
.security-locked-card small,.security-summary-card small,.security-action-card small,.security-error-card small{display:block;color:var(--muted);line-height:1.45}
.security-card-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:14px;background:color-mix(in srgb,var(--muted) 12%,transparent);color:var(--muted)}
.security-card-icon.enabled{background:color-mix(in srgb,#23a559 18%,transparent);color:#23a559}
.security-card-icon .app-icon{width:22px;height:22px}
.security-status-badge{flex:none;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase}
.security-status-badge.enabled{background:color-mix(in srgb,#23a559 18%,transparent);color:color-mix(in srgb,#23a559 75%,var(--strong))}
.security-status-badge.disabled{background:color-mix(in srgb,var(--muted) 13%,transparent);color:var(--muted)}
.security-action-card>button,.security-locked-card>button,.security-error-card>button{flex:none;white-space:nowrap}
.account-security-unlock,.two-factor-setup-dialog,.two-factor-recovery-dialog{width:min(560px,100%)}
.account-security-unlock label,.two-factor-confirm-form label{display:block;margin-top:15px}
.security-unlock-error,.two-factor-confirm-error{margin-top:14px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--danger) 58%,transparent);border-radius:7px;background:color-mix(in srgb,var(--danger) 14%,var(--settings-card-bg,var(--panel)));color:color-mix(in srgb,var(--danger) 72%,var(--strong));font-size:13px;line-height:1.4}
.security-unlock-submit{display:inline-flex;align-items:center;gap:8px}
.security-unlock-submit .app-icon{width:17px;height:17px}
.two-factor-setup-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;align-items:start;margin:4px 0 20px}
.two-factor-qr{display:grid;place-items:center;min-height:204px;padding:10px;border:1px solid var(--settings-border,var(--border));border-radius:12px;background:#fff;color:#111;text-align:center;overflow:hidden}
.two-factor-qr img,.two-factor-qr canvas{display:block;max-width:100%;height:auto!important}
.two-factor-manual{display:grid;gap:8px;min-width:0;padding:4px 0}
.two-factor-manual>small{color:var(--muted);line-height:1.4}
.two-factor-manual>code{display:block;padding:10px;border:1px solid var(--settings-border,var(--border));border-radius:7px;background:var(--input);color:var(--strong);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.45;letter-spacing:.08em;overflow-wrap:anywhere;user-select:text}
.two-factor-manual dl{display:grid;gap:8px;margin:5px 0 0}.two-factor-manual dl>div{display:grid;grid-template-columns:70px minmax(0,1fr);gap:8px}.two-factor-manual dt{color:var(--muted)}.two-factor-manual dd{margin:0;min-width:0;overflow-wrap:anywhere}
.two-factor-warning{margin:15px 0;padding:11px 12px;border:1px solid color-mix(in srgb,#f0b232 48%,transparent);border-radius:8px;background:color-mix(in srgb,#f0b232 12%,transparent);line-height:1.45}
.recovery-code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:4px 0}
.recovery-code-grid code{display:block;padding:10px 12px;border:1px solid var(--settings-border,var(--border));border-radius:7px;background:var(--input);color:var(--strong);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:700;letter-spacing:.06em;text-align:center;user-select:text}
.two-factor-recovery-dialog .dialog-actions{flex-wrap:wrap}

@media(max-width:700px){
 .security-locked-card,.security-summary-card,.security-action-card,.security-error-card{align-items:flex-start;flex-wrap:wrap}
 .security-card-icon{flex-basis:40px;width:40px;height:40px}
 .security-locked-card>button,.security-action-card>button,.security-error-card>button{width:100%}
 .security-status-badge{margin-left:auto}
 .two-factor-setup-layout{grid-template-columns:1fr}.two-factor-qr{width:min(220px,100%);min-height:0;margin-inline:auto}
 .recovery-code-grid{grid-template-columns:1fr}
 .account-security-unlock .dialog-actions,.two-factor-setup-dialog .dialog-actions,.two-factor-recovery-dialog .dialog-actions{display:grid;grid-template-columns:1fr;width:100%}
 .account-security-unlock .dialog-actions button,.two-factor-setup-dialog .dialog-actions button,.two-factor-recovery-dialog .dialog-actions button{width:100%}
}


/* v1.6.0.27 Pulse — security layout alignment and standard danger actions. */
.security-page-head{align-items:flex-start}
.security-page-head>div{min-width:0}
.security-page-head p{max-width:680px;margin:7px 0 0;color:var(--muted);line-height:1.5}
.security-settings-layout{display:grid;gap:24px;width:100%;max-width:760px}
.security-summary-hero,.security-locked-hero{margin:0;padding:20px;border-radius:10px}
.security-summary-hero{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 10%,var(--settings-card-bg)),var(--settings-card-bg) 58%)}
.security-card-copy{min-width:0;flex:1}
.security-card-copy strong{display:block;margin:0 0 5px;font-size:15px;color:var(--strong)}
.security-card-copy small{display:block;margin:0;color:var(--muted);line-height:1.5}
.security-settings-group{display:grid;gap:10px}
.security-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 2px}
.security-section-head h3{margin:0;color:var(--strong);font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.security-action-list{display:block;margin:0;padding:0;overflow:hidden;border-radius:10px}
.security-action-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 18px}
.security-action-row+.security-action-row{border-top:1px solid var(--settings-border,var(--border))}
.security-action-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:color-mix(in srgb,var(--muted) 11%,transparent);color:var(--muted)}
.security-action-icon.enabled{background:color-mix(in srgb,#23a559 16%,transparent);color:#23a559}
.security-action-icon .app-icon{width:21px;height:21px}
.security-action-copy{min-width:0}
.security-action-copy strong{display:block;margin:0 0 4px;color:var(--strong)}
.security-action-copy small{display:block;margin:0;color:var(--muted);line-height:1.45}
.security-action-copy .security-session-note{margin-top:5px;color:color-mix(in srgb,var(--muted) 82%,var(--accent))}
.security-action-row>button{min-width:132px;white-space:nowrap;margin:0!important}
.security-action-row>button.danger-button{min-height:var(--control-height);padding-inline:14px}
.security-status-badge{align-self:center}
@media(max-width:700px){
 .security-settings-layout{gap:18px}
 .security-summary-hero,.security-locked-hero{align-items:flex-start;padding:16px;flex-wrap:wrap}
 .security-summary-hero .security-status-badge{margin-left:auto}
 .security-locked-hero>button{width:100%}
 .security-action-row{grid-template-columns:40px minmax(0,1fr);padding:15px}
 .security-action-icon{width:40px;height:40px}
 .security-action-row>button{grid-column:1/-1;width:100%;min-width:0}
}

/* v1.6.0.28 Pulse — framed settings modal with consistent content gutters. */
.modal-backdrop>.modal.modal-settings{
  --settings-frame-inset:10px;
  --settings-content-max:760px;
  padding:var(--settings-frame-inset)!important;
  overflow:hidden!important;
  border:1px solid var(--settings-border,color-mix(in srgb,var(--muted) 24%,transparent));
  background:color-mix(in srgb,var(--panel) 94%,var(--rail));
}
.modal-backdrop>.modal.modal-settings>.close{
  top:calc(var(--settings-frame-inset) + 10px);
  right:calc(var(--settings-frame-inset) + 10px);
}
.modal-backdrop>.modal.modal-settings>.app-settings,
.modal-backdrop>.modal.modal-settings>.user-settings-shell{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  overflow:hidden!important;
  border:1px solid var(--settings-border,color-mix(in srgb,var(--muted) 24%,transparent));
  border-radius:10px;
  background:var(--bg);
  box-shadow:0 12px 34px color-mix(in srgb,#000 24%,transparent);
}
.modal-backdrop>.modal.modal-settings .settings-nav{
  border-right:1px solid var(--settings-border,color-mix(in srgb,var(--muted) 24%,transparent));
  scrollbar-gutter:stable;
}
.modal-backdrop>.modal.modal-settings .settings-content{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  padding:clamp(42px,6vh,60px) clamp(28px,4.5vw,56px) clamp(64px,9vh,88px)!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  scroll-padding-block:32px;
}
.modal-backdrop>.modal.modal-settings .settings-content>*{
  box-sizing:border-box;
  width:100%;
  min-width:0;
  max-width:min(var(--settings-content-max),100%)!important;
  margin-left:auto;
  margin-right:auto;
}
.modal-backdrop>.modal.modal-settings .settings-content>:last-child{margin-bottom:0}
.modal-backdrop>.modal.modal-settings .settings-content :is(.settings-card,.voice-settings-card,.profile-preview-card,.account-hero,.account-details,.security-settings-layout,.security-settings-group,.security-action-list){
  min-width:0;
  max-width:100%;
}
.modal-backdrop>.modal.modal-settings .settings-content :is(input,textarea,select,.field){max-width:100%}
.modal-backdrop>.modal.modal-settings .app-settings.role-management-mode>.settings-content>*,
.modal-backdrop>.modal.modal-settings .settings-content>:is(.role-manager,.role-manager-layout,.manager-window,.channel-manager,.category-manager,.channel-settings-box,.app-channel-access){
  max-width:none!important;
  margin-left:0;
  margin-right:0;
}
@media(max-width:900px) and (min-width:701px){
  .modal-backdrop>.modal.modal-settings{
    --settings-frame-inset:8px;
    --settings-content-max:720px;
  }
  .modal-backdrop>.modal.modal-settings .settings-content{
    padding:36px 24px 56px!important;
  }
}

/* v1.6.0.29 Pulse — contained server settings and in-flow role management. */
.server-settings-shell>.settings-content{
  container-type:inline-size;
  container-name:server-settings-content;
}
.server-settings-shell:not(.role-management-mode)>.settings-content{
  align-content:start;
}
.server-settings-shell .settings-content,
.server-settings-shell .settings-content *{
  box-sizing:border-box;
}
.server-settings-shell .settings-content>:is(h2,p,label,section,article,div),
.server-settings-shell .settings-content :is(.server-overview-assets,.server-theme-grid,.server-accent-setting,.invite-create-grid,.invite-list,.invite-row,.invite-row-copy,.invite-row-actions,.audit-log,.audit-entry,.ban-list,.ban-row,.danger-zone,.danger-row,.server-members-settings,.server-member-settings-list,.server-member-settings-row,.server-member-settings-identity,.server-member-role-pills,.app-switch-row){
  min-width:0;
  max-width:100%;
}
.server-settings-shell .settings-content :is(.settings-page-head,.invite-row-copy,.audit-entry>div,.ban-row>div,.danger-row>div,.server-member-settings-identity>div,.app-switch-row>span) :is(h2,h3,h4,strong,p,small,span,time),
.server-settings-shell .settings-content>p{
  overflow-wrap:anywhere;
  word-break:normal;
}
.server-settings-shell .settings-content :is(input,textarea,select,.field){
  width:100%;
  min-width:0;
  max-width:100%;
}
.server-settings-shell .settings-content textarea.field{resize:vertical}
.server-settings-shell .settings-content>.settings-page-head,
.server-settings-shell .settings-content>h2{
  margin-top:0;
}
.server-settings-shell .settings-content>.settings-page-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:20px;
}
.server-settings-shell .settings-content>.settings-page-head>div{min-width:0}
.server-settings-shell .settings-content>.settings-page-head h2{margin:0 0 6px!important}
.server-settings-shell .settings-content>.settings-page-head p{
  display:block;
  margin:0;
  color:var(--muted);
  line-height:1.45;
}
.server-settings-shell .invite-create-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) minmax(max-content,auto);
}
.server-settings-shell .invite-row{
  width:100%;
  padding-inline:12px;
  border:1px solid var(--settings-border,var(--border));
  border-radius:8px;
  background:var(--settings-card-bg,var(--panel));
}
.server-settings-shell .invite-list{display:grid;gap:8px}
.server-settings-shell .invite-row-copy strong{
  display:block;
  max-width:100%;
  overflow-wrap:anywhere;
}
.server-settings-shell .invite-row-actions{flex:0 1 auto}
.server-settings-shell .danger-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
}
.server-settings-shell .server-accent-setting{
  flex-wrap:wrap;
}
.server-settings-shell .server-accent-setting>span{min-width:min(280px,100%);flex:1}
.server-settings-shell .server-accent-setting>.server-accent{flex:0 0 68px;width:68px}
.server-settings-shell .audit-entry,
.server-settings-shell .ban-row{width:100%}
.server-settings-shell .audit-entry :is(strong,span,small,time),
.server-settings-shell .ban-row :is(strong,span,small){overflow-wrap:anywhere}
.server-settings-shell .server-member-settings-row{width:100%}

/* Roles remain a Server Settings page: keep the global settings navigation visible. */
.modal-backdrop>.modal.modal-settings>.server-settings-shell.role-management-mode{
  grid-template-columns:clamp(190px,21vw,220px) minmax(0,1fr)!important;
}
.modal-backdrop>.modal.modal-settings>.server-settings-shell.role-management-mode>.settings-nav{
  display:block!important;
}
.modal-backdrop>.modal.modal-settings>.server-settings-shell.role-management-mode>.settings-content{
  padding:22px!important;
  overflow:hidden!important;
  max-width:none!important;
}
.modal-backdrop>.modal.modal-settings>.server-settings-shell.role-management-mode>.settings-content>*{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}
.app-role-settings{
  container-type:inline-size;
  container-name:role-workspace;
  grid-template-columns:minmax(190px,220px) minmax(0,1fr);
  height:100%;
  min-height:0;
  border:1px solid var(--settings-border,var(--border));
  border-radius:10px;
  box-shadow:0 8px 24px color-mix(in srgb,#000 14%,transparent);
}
.app-role-sidebar{
  padding:14px 10px 12px;
}
.app-role-sidebar-head{
  min-width:0;
  padding:0 4px 12px;
}
.app-role-sidebar-heading{
  min-width:0;
  display:flex;
  align-items:center;
  gap:9px;
  color:var(--strong);
}
.app-role-sidebar-heading>.app-icon{
  width:18px;
  height:18px;
  flex:none;
  color:var(--muted);
}
.app-role-sidebar-heading>span{min-width:0}
.app-role-sidebar-heading strong,
.app-role-sidebar-heading small{
  display:block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.app-role-sidebar-heading strong{font-size:14px}
.app-role-sidebar-heading small{margin-top:2px;color:var(--muted);font-size:10px;font-weight:500}
.app-role-sidebar-title{display:none!important}
.app-role-editor{
  container-type:inline-size;
  container-name:role-editor;
}
.app-role-editor-head{
  min-width:0;
  min-height:78px;
  padding:22px clamp(22px,3.4vw,44px) 12px;
}
.app-role-editor-head>div{min-width:0}
.app-role-editor-head h2{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.app-role-tabs{
  min-width:0;
  padding-inline:clamp(22px,3.4vw,44px);
  gap:clamp(12px,2vw,18px);
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
}
.app-role-tabs::-webkit-scrollbar{display:none}
.app-role-editor-scroll{
  padding:24px clamp(22px,3.4vw,44px) 72px;
}
.app-role-editor>.settings-unsaved-bar{
  left:clamp(22px,3.4vw,44px);
  right:clamp(22px,3.4vw,44px);
}
.app-role-section,
.app-role-section-heading,
.app-role-section-heading>div,
.app-role-display-layout,
.app-role-form,
.app-role-preview,
.app-role-notice,
.app-permission-copy,
.app-role-member-identity{min-width:0}
.app-role-section-heading :is(h3,p),
.app-role-notice span,
.app-permission-copy :is(strong,small),
.app-role-danger :is(strong,small){overflow-wrap:anywhere}
.app-role-display-layout{
  grid-template-columns:minmax(0,1fr) minmax(210px,270px);
  gap:24px;
}
.app-role-color-swatches{
  grid-template-columns:repeat(auto-fit,minmax(30px,34px));
}
.app-role-danger{max-width:100%}
.permission-row.app-permission-row{max-width:100%}
.app-role-member-row{max-width:100%}

@container server-settings-content (max-width:680px){
  .server-settings-shell .invite-create-grid{grid-template-columns:1fr}
  .server-settings-shell .invite-create-grid>.primary{width:100%;margin-top:0}
  .server-settings-shell .invite-row{align-items:flex-start;flex-direction:column}
  .server-settings-shell .invite-row-actions{width:100%;justify-content:flex-start}
  .server-settings-shell .danger-row{grid-template-columns:1fr;align-items:start}
  .server-settings-shell .danger-row>button{width:100%}
}
@container role-editor (max-width:610px){
  .app-role-display-layout{grid-template-columns:1fr}
  .app-role-preview{max-width:none}
  .app-role-danger{align-items:flex-start;flex-direction:column}
  .app-role-danger .danger-button{width:100%}
  .permission-row.app-permission-row{gap:14px}
}
@container role-workspace (max-width:610px){
  .app-role-settings{
    grid-template-columns:minmax(170px,195px) minmax(0,1fr);
  }
  .app-role-row{grid-template-columns:14px 12px minmax(0,1fr) auto;gap:6px;padding-inline:6px}
  .app-role-row .drag-handle{width:14px}
  .app-role-default,.app-role-row .bot-tag{display:none}
}

/* v1.6.0.30 Pulse — aligned Server Settings form controls. */
.server-settings-shell .server-settings-form{
  width:100%;
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:20px;
  margin-top:22px;
}
.server-settings-shell .server-settings-field{
  width:100%;
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:8px;
  margin:0!important;
  padding:0;
  color:inherit;
  font-size:inherit;
  font-weight:inherit;
  line-height:normal;
  text-transform:none;
}
.server-settings-shell .server-settings-field-label{
  display:block;
  width:100%;
  min-width:0;
  margin:0;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
  line-height:1.25;
  letter-spacing:.03em;
  text-transform:uppercase;
  overflow-wrap:anywhere;
}
.server-settings-shell .server-settings-field :is(.field,input.field,select.field,textarea.field){
  display:block;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
}
.server-settings-shell .server-settings-field textarea.field{
  min-height:112px;
}
.server-settings-shell .server-settings-field-help{
  display:block;
  width:100%;
  min-width:0;
  margin:0;
  color:var(--muted);
  font-size:12px;
  font-weight:500;
  line-height:1.45;
  text-transform:none;
  overflow-wrap:anywhere;
}
.server-settings-shell .server-settings-form>.app-switch-row,
.server-settings-shell .server-settings-form>.server-accent-setting{
  width:100%;
  min-width:0;
  margin:0!important;
}
.server-settings-shell .server-inactive-settings{
  display:grid;
  gap:14px;
  padding:18px;
  border:1px solid var(--settings-border,var(--border));
  border-radius:12px;
  background:color-mix(in srgb,var(--rail) 68%,transparent);
}
.server-settings-shell .server-inactive-heading{
  display:grid;
  gap:4px;
}
.server-settings-shell .server-inactive-heading strong{
  font-size:15px;
}
.server-settings-shell .server-inactive-heading small{
  color:var(--muted);
  line-height:1.45;
}
.server-settings-shell .server-inactive-controls{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:16px;
}
.server-settings-shell .server-settings-form>.app-switch-row{
  padding-block:16px;
}
.server-settings-shell .server-settings-form>.server-accent-setting{
  padding:14px 0;
  border-top:1px solid var(--settings-border,var(--border));
}
.server-settings-shell .invite-create-grid>.server-settings-field{
  align-self:stretch;
  grid-template-rows:auto 40px;
}
.server-settings-shell .invite-create-grid>.create-invite{
  min-height:40px;
  margin:0;
}
.app-role-form{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:20px;
}
.app-role-form>.server-settings-field{
  margin:0!important;
}
.app-role-form>.app-switch-row{
  margin:2px 0 0!important;
}
.app-role-form .app-role-color-editor{
  width:100%;
  min-width:0;
}
.app-role-form .app-role-color-swatches{
  margin-top:4px;
}
@container server-settings-content (max-width:680px){
  .server-settings-shell .server-settings-form{gap:18px}
  .server-settings-shell .server-inactive-controls{grid-template-columns:minmax(0,1fr)}
}

/* v1.6.0.30 Pulse — align Server Settings labels with control text. */
.server-settings-shell{
  --server-settings-control-inline:12px;
  --server-settings-field-gap:7px;
}
.server-settings-shell .server-settings-field{
  gap:var(--server-settings-field-gap);
}
.server-settings-shell .server-settings-field-label,
.server-settings-shell .server-settings-field-help{
  padding-inline:var(--server-settings-control-inline);
}
.server-settings-shell .server-settings-field :is(input.field,select.field,textarea.field){
  border-radius:6px;
}
.server-settings-shell .server-settings-field :is(input.field,select.field){
  height:40px;
  min-height:40px;
  padding-left:var(--server-settings-control-inline);
}
.server-settings-shell .server-settings-field textarea.field{
  padding-inline:var(--server-settings-control-inline);
}
.server-settings-shell .server-settings-field select.field{
  padding-right:36px;
}
.server-settings-shell .app-role-color-editor{
  min-height:40px;
  padding:4px 10px;
  border-radius:6px;
  background:var(--rail);
}
.server-settings-shell .app-role-color-editor .role-color{
  width:52px;
  height:32px;
  min-height:32px;
  border-radius:4px;
}
.server-settings-shell .app-role-color-editor .role-color-value{
  min-width:0;
  line-height:1;
}
.server-settings-shell .server-settings-form>.server-accent-setting>span,
.server-settings-shell .app-role-form>.app-switch-row>span{
  padding-left:var(--server-settings-control-inline);
}
.server-settings-shell .server-settings-form>.server-accent-setting{
  padding-right:var(--server-settings-control-inline);
}
.server-settings-shell .invite-create-grid>.server-settings-field{
  grid-template-rows:minmax(15px,auto) 40px;
}

/* v1.6.0.31 Pulse: downloadable Developer documentation. */
.developer-doc-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:22px;
}
.developer-doc-header>div:first-child{min-width:0}
.developer-doc-download-actions{
  display:flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.developer-doc-download-actions button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:38px;
  max-width:100%;
  white-space:normal;
  text-align:center;
}
.developer-doc-download-actions button svg{flex:0 0 auto;width:16px;height:16px}
.developer-language-download-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 18px 14px;
  padding:13px 14px;
  border:1px solid var(--border);
  border-radius:11px;
  background:var(--input);
}
.developer-language-download-bar>div:first-child{display:grid;gap:4px;min-width:0}
.developer-language-download-bar strong{color:var(--strong);font-size:12px}
.developer-language-download-bar small{color:var(--muted);font-size:11px;line-height:1.45}
.developer-language-download-bar .developer-doc-download-actions{flex:0 0 auto}
.developer-application-doc-actions{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  flex-wrap:wrap;
}
.developer-application-doc-actions>.developer-open-full-docs{margin:0}
.developer-application-doc-actions .developer-doc-download-actions{justify-content:flex-start}
@media(max-width:1050px){
  .developer-doc-header{align-items:stretch;flex-direction:column}
  .developer-doc-header .developer-doc-download-actions{justify-content:flex-start}
  .developer-language-download-bar{align-items:stretch;flex-direction:column}
  .developer-language-download-bar .developer-doc-download-actions{justify-content:flex-start}
}

/* Snap text-channel settings and expiring-message indicators. */
.channel-access-permission-card+.channel-access-permission-card{margin-top:14px}
.snap-channel-options{padding:18px!important}
.snap-channel-options-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.snap-channel-options-head>span{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.snap-channel-options-head>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.snap-channel-options-head small{color:var(--muted);line-height:1.35}
.snap-channel-options>label{display:block;margin:0;padding:14px;border-radius:8px;background:color-mix(in srgb,var(--input) 88%,transparent);border:1px solid color-mix(in srgb,var(--muted) 12%,transparent)}
.snap-channel-options>label>span{display:block;margin-bottom:8px;color:var(--strong);font-weight:700;text-transform:none;font-size:13px}
.snap-channel-options>label>small{display:block;margin-top:7px;color:var(--muted);font-weight:400;text-transform:none;line-height:1.4}
.snap-channel-options select:disabled{cursor:not-allowed;opacity:.72}
.snap-channel-options .snap-permission-note{display:flex;align-items:center;gap:6px;color:var(--danger);font-weight:650}
.snap-channel-options .snap-permission-note .app-icon{width:14px;height:14px;flex:0 0 auto}
.snap-only-channel-settings .app-channel-settings-form{max-width:720px}
.snap-message-badge{display:inline-flex;align-items:center;gap:3px;flex:0 0 auto;margin-left:6px;padding:2px 5px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-size:10px;font-weight:800;line-height:1.2;vertical-align:middle}
.snap-message-badge .app-icon{width:11px;height:11px}
.system-welcome-message .snap-message-badge{margin-left:8px}
@media(max-width:700px){.snap-channel-options{padding:14px!important}.snap-message-badge>span{display:none}.snap-message-badge{padding:3px;margin-left:4px}}
.channel-access-detail-body>.channel-access-resolution-note,
.channel-access-detail-body>.channel-access-hierarchy-notice{max-width:680px;margin-top:14px;border:1px solid var(--border);border-radius:8px}

/* v1.6.0.37 — message actions and attachment surfaces inherit the active user theme. */
:root{
 --message-action-surface:color-mix(in srgb,var(--panel) 88%,var(--bg));
 --attachment-surface:color-mix(in srgb,var(--input) 78%,var(--panel));
 --attachment-surface-hover:color-mix(in srgb,var(--hover) 84%,var(--panel));
 --attachment-border:color-mix(in srgb,var(--muted) 24%,transparent);
}
.messagebox-actions{
 background:var(--message-action-surface)!important;
 color:var(--text)!important;
 border-top:1px solid var(--attachment-border)!important;
}
.file-attachment,
.pending-attachment:not([hidden]):not(:empty){
 background:var(--attachment-surface)!important;
 color:var(--text)!important;
 border:1px solid var(--attachment-border)!important;
 box-shadow:var(--settings-card-shadow,none)!important;
}
.file-attachment:hover{background:var(--attachment-surface-hover)!important}
.file-attachment strong{color:var(--accent)!important}
.pending-attachment strong{color:var(--strong,var(--text))!important}
.file-attachment small,
.pending-attachment small{color:var(--muted)!important}
.file-attachment .attachment-download,
.pending-attachment button{color:var(--text)!important}
.file-attachment .attachment-download:hover,
.pending-attachment button:hover{background:var(--neutral-button-hover,var(--hover))!important}
:root[data-theme^="liquid-glass"] .messagebox-actions,
:root[data-theme^="liquid-glass"] .file-attachment,
:root[data-theme^="liquid-glass"] .pending-attachment:not([hidden]):not(:empty){
 background:color-mix(in srgb,var(--panel) 74%,transparent)!important;
 backdrop-filter:blur(18px) saturate(145%);
 -webkit-backdrop-filter:blur(18px) saturate(145%);
}

/* v1.6.0.39 — theme-aware message-box action footer with a distinct surface. */
:root{
 --message-action-surface:color-mix(in srgb,var(--input) 88%,var(--accent) 12%);
 --message-action-separator:color-mix(in srgb,var(--text) 18%,transparent);
 --message-action-shadow:inset 0 1px 0 color-mix(in srgb,var(--strong) 6%,transparent),0 -10px 24px color-mix(in srgb,var(--rail) 12%,transparent);
}
.messagebox-actions{
 background:var(--message-action-surface)!important;
 border-top:1px solid var(--message-action-separator)!important;
 box-shadow:var(--message-action-shadow)!important;
}
:root[data-theme^="liquid-glass"] .messagebox-actions{
 background:color-mix(in srgb,var(--input) 72%,transparent)!important;
 border-top-color:color-mix(in srgb,var(--strong) 16%,transparent)!important;
 box-shadow:inset 0 1px 0 color-mix(in srgb,var(--strong) 9%,transparent),0 -12px 30px color-mix(in srgb,var(--rail) 18%,transparent)!important;
 backdrop-filter:blur(22px) saturate(155%);
 -webkit-backdrop-filter:blur(22px) saturate(155%);
}

/* DM multiplayer activities: the game occupies a parallel workspace so chat,
   message history, typing, uploads, and replies remain available at all times. */
.dm-games-toggle{position:relative}
.dm-games-toggle[hidden],.shell:not([data-conversation-scope="dm"]):not([data-conversation-scope="group"]) .dm-games-toggle{display:none!important}
.dm-games-toggle.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent)}
.dm-games-toggle.has-game-attention::after{content:"";position:absolute;right:4px;top:4px;width:7px;height:7px;border-radius:50%;background:#f0b232;border:2px solid var(--top);box-sizing:content-box}
.main.dm-game-open{display:grid;grid-template-columns:minmax(280px,1fr) clamp(340px,44%,560px);grid-template-rows:minmax(0,1fr) auto;overflow:hidden}
.main.dm-game-open>.messages{grid-column:1;grid-row:1;min-width:0;min-height:0}
.main.dm-game-open>.composer-wrap{grid-column:1;grid-row:2;min-width:0}
.dm-game-panel{grid-column:2;grid-row:1/3;min-width:0;min-height:0;display:flex;flex-direction:column;background:color-mix(in srgb,var(--panel) 94%,var(--bg));border-left:1px solid color-mix(in srgb,var(--muted) 24%,transparent);box-shadow:-10px 0 26px rgba(0,0,0,.12);overflow:hidden}
.dm-game-panel[hidden]{display:none!important}
.dm-game-panel-head{height:52px;min-height:52px;padding:0 12px 0 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid color-mix(in srgb,var(--muted) 20%,transparent);background:color-mix(in srgb,var(--top) 96%,transparent)}
.dm-game-panel-head>div{display:flex;align-items:center;gap:9px;min-width:0}
.dm-game-panel-head>div:first-child>span{font-size:25px;color:var(--strong)}
.dm-game-panel-head strong,.dm-game-panel-head small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dm-game-panel-head strong{color:var(--strong);font-size:14px}.dm-game-panel-head small{color:var(--muted);font-size:11px;margin-top:1px}
.dm-game-panel-head .icon-btn{width:30px;height:30px;padding:0;display:grid;place-items:center;font-size:21px}
.game-surface-control svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.game-surface-control.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent)}
.dm-game-panel-scroll{flex:1;min-height:0;overflow:auto;padding:14px;overscroll-behavior:contain}
.dm-game-loading,.dm-game-empty{height:100%;min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px;color:var(--muted)}
.dm-game-loading strong,.dm-game-empty h3{color:var(--strong);margin:0}.dm-game-empty p{max-width:330px;margin:0 0 8px;line-height:1.45}
.dm-game-spinner{width:30px;height:30px;border:3px solid color-mix(in srgb,var(--muted) 32%,transparent);border-top-color:var(--accent);border-radius:50%;animation:dm-game-spin .75s linear infinite}
@keyframes dm-game-spin{to{transform:rotate(360deg)}}
.dm-game-hero{font-size:54px;line-height:1;color:var(--strong);filter:drop-shadow(0 6px 12px rgba(0,0,0,.25))}
.dm-game-library-intro{text-align:center;padding:14px 10px 20px}.dm-game-library-intro h3{margin:9px 0 5px;color:var(--strong);font-size:20px}.dm-game-library-intro p{margin:0;color:var(--muted);line-height:1.45}
.dm-game-card{padding:14px;border:1px solid color-mix(in srgb,var(--muted) 24%,transparent);border-radius:12px;background:color-mix(in srgb,var(--bg) 72%,var(--panel));box-shadow:0 8px 20px rgba(0,0,0,.1)}
.dm-game-card>div{display:flex;align-items:center;gap:12px}.dm-game-card-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(145deg,#7f5634,#3b281d);font-size:31px;color:#fff}
.dm-game-card strong,.dm-game-card small{display:block}.dm-game-card strong{color:var(--strong);font-size:16px}.dm-game-card small{color:var(--muted);line-height:1.35;margin-top:3px}
.dm-game-card label{margin:14px 0 8px}.dm-game-card .field{margin-top:6px}.dm-game-card>.primary{width:100%;margin-top:10px}
.dm-game-status{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--bg) 68%,var(--panel));border:1px solid color-mix(in srgb,var(--muted) 20%,transparent)}
.dm-game-status>div{display:flex;align-items:center;gap:9px;min-width:0}.dm-game-status>div>span{font-size:25px}.dm-game-status strong,.dm-game-status small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dm-game-status strong{color:var(--strong)}.dm-game-status small{color:var(--muted);margin-top:2px}
.dm-game-status-pill{flex:none;padding:4px 7px;border-radius:999px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:color-mix(in srgb,var(--accent) 72%,var(--strong));font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.dm-game-status[data-status="completed"] .dm-game-status-pill{background:color-mix(in srgb,var(--green) 18%,transparent);color:color-mix(in srgb,var(--green) 72%,var(--strong))}
.dm-game-player{display:flex;align-items:center;gap:9px;padding:7px 8px;color:var(--muted);border-radius:8px}.dm-game-player.turn{background:color-mix(in srgb,var(--accent) 10%,transparent)}.dm-game-player.winner{background:color-mix(in srgb,var(--green) 12%,transparent)}
.dm-game-player-piece{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--bg);font-size:22px;color:var(--strong)}
.dm-game-player>div{min-width:0}.dm-game-player strong,.dm-game-player span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dm-game-player strong{color:var(--strong)}.dm-game-player strong small{color:var(--muted);font-weight:600}.dm-game-player>div>span{font-size:11px;margin-top:2px}
.dm-chess-board{width:min(100%,520px);aspect-ratio:1;margin:4px auto;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));border:3px solid color-mix(in srgb,var(--rail) 84%,#000);border-radius:5px;overflow:hidden;box-shadow:0 10px 24px rgba(0,0,0,.25);touch-action:manipulation;user-select:none}
.dm-chess-square{position:relative;min-width:0;min-height:0;width:100%;height:100%;border:0;border-radius:0;padding:0;display:grid;place-items:center;cursor:default;color:inherit;overflow:hidden}
.dm-chess-square.light{background:#e7cfaa}.dm-chess-square.dark{background:#9b6b43}
.dm-chess-square[draggable="true"]{cursor:grab}.dm-chess-square[draggable="true"]:active{cursor:grabbing}
.dm-chess-piece{position:relative;z-index:2;font-family:"Segoe UI Symbol","Noto Sans Symbols 2",serif;font-size:clamp(25px,4.2vw,48px);line-height:1;transform:translateY(-1px);pointer-events:none}
.dm-chess-piece.white{color:#f7f3e8;text-shadow:0 1px 0 #27221c,1px 0 0 #27221c,0 -1px 0 #27221c,-1px 0 0 #27221c,0 3px 5px rgba(0,0,0,.28)}
.dm-chess-piece.black{color:#24211f;text-shadow:0 1px 0 #d9c2a0,1px 0 0 #d9c2a0,0 -1px 0 #d9c2a0,-1px 0 0 #d9c2a0,0 3px 5px rgba(0,0,0,.2)}
.dm-chess-square.last-move{box-shadow:inset 0 0 0 999px rgba(238,217,82,.32)}.dm-chess-square.selected{box-shadow:inset 0 0 0 4px rgba(88,101,242,.9)}
.dm-chess-square.legal-target::after{content:"";position:absolute;z-index:1;width:24%;height:24%;border-radius:50%;background:rgba(28,32,36,.42);pointer-events:none}.dm-chess-square.legal-target[data-piece]:not([data-piece="."])::after{width:82%;height:82%;background:transparent;border:4px solid rgba(28,32,36,.38)}
.dm-chess-square.in-check{box-shadow:inset 0 0 0 999px rgba(218,55,60,.58)}
.dm-chess-file,.dm-chess-rank{position:absolute;z-index:3;font-style:normal;font-size:9px;font-weight:800;line-height:1;pointer-events:none;color:rgba(24,20,17,.62)}.dm-chess-file{right:2px;bottom:2px}.dm-chess-rank{left:2px;top:2px}
.dm-game-working{pointer-events:none;opacity:.72}
.dm-game-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding:10px 0 4px}.dm-game-controls button{min-height:34px;padding:8px 12px}
.dm-game-moves,.dm-game-history{margin-top:10px;border-top:1px solid color-mix(in srgb,var(--muted) 20%,transparent)}
.dm-game-moves summary,.dm-game-history summary{display:flex;align-items:center;gap:8px;padding:11px 2px;cursor:pointer;color:var(--strong);font-weight:700;list-style:none}.dm-game-moves summary::-webkit-details-marker,.dm-game-history summary::-webkit-details-marker{display:none}.dm-game-moves summary::after,.dm-game-history summary::after{content:"⌄";margin-left:auto;color:var(--muted)}.dm-game-moves[open] summary::after,.dm-game-history[open] summary::after{transform:rotate(180deg)}
.dm-game-moves summary span,.dm-game-history summary span{min-width:20px;padding:2px 5px;border-radius:999px;background:var(--bg);color:var(--muted);font-size:10px;text-align:center}
.dm-game-moves>div{max-height:170px;overflow:auto;padding:0 2px 4px}.dm-game-moves>div>div{display:grid;grid-template-columns:28px 1fr 1fr;gap:8px;padding:5px 6px;border-radius:5px}.dm-game-moves>div>div:nth-child(odd){background:color-mix(in srgb,var(--bg) 52%,transparent)}.dm-game-moves b{color:var(--muted);font-size:11px}.dm-game-moves span{color:var(--text);font-variant-numeric:tabular-nums}.dm-game-no-moves{margin:5px;color:var(--muted);font-size:12px}
.dm-game-history>div{display:grid;gap:5px;padding-bottom:5px}.dm-game-history button{border:0;background:transparent;color:var(--text);display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;text-align:left;padding:7px;border-radius:7px;cursor:pointer}.dm-game-history button:hover,.dm-game-history button.active{background:var(--hover)}.dm-game-history button>span{font-size:21px}.dm-game-history button strong{color:var(--strong)}.dm-game-history button small{color:var(--muted);font-size:10px}
@media(max-width:1120px) and (min-width:701px){.main.dm-game-open{grid-template-columns:minmax(260px,1fr) minmax(330px,48%)}.dm-game-panel-scroll{padding:10px}.dm-chess-piece{font-size:clamp(25px,4.4vw,42px)}}

/* Fullscreen and full-tab game surfaces retain the authenticated live game
   while removing the surrounding chat/navigation chrome. */
.dm-game-panel:fullscreen,.dm-game-panel:-webkit-full-screen{width:100vw;height:100vh;display:flex!important;background:var(--panel);border:0;box-shadow:none}.dm-game-panel:fullscreen::backdrop{background:var(--bg)}
.dm-game-panel:fullscreen .dm-game-panel-scroll>*,.dm-game-panel:-webkit-full-screen .dm-game-panel-scroll>*,.game-popout-panel .dm-game-panel-scroll>*{width:min(100%,1200px);margin-inline:auto}
.dm-game-panel:fullscreen .dm-chess-board,.dm-game-panel:-webkit-full-screen .dm-chess-board,.game-popout-panel .dm-chess-board{width:min(72vh,100%,760px)}
.dm-game-panel:fullscreen .frontiers-map,.dm-game-panel:-webkit-full-screen .frontiers-map,.game-popout-panel .frontiers-map{width:min(100%,1000px);margin-inline:auto}
.dm-game-panel:fullscreen .estate-board,.dm-game-panel:-webkit-full-screen .estate-board,.game-popout-panel .estate-board{width:min(76vh,100%,780px)}
html.game-popout,body.game-popout,body.game-popout #app{width:100%;height:100%;height:100dvh;overflow:hidden}
body.game-popout .shell{display:block!important;width:100%;height:100%;min-width:0}
body.game-popout .shell>.rail,body.game-popout .shell>.sidebar,body.game-popout .shell>.sidebar-resizer,body.game-popout .shell>.header,body.game-popout .shell>.members,body.game-popout .shell>.mobile-backdrop,body.game-popout .shell>.mobile-youbar{display:none!important}
body.game-popout .main,body.game-popout .main.dm-game-open{position:fixed!important;inset:0!important;width:100%!important;height:100%!important;display:block!important;overflow:hidden!important}
body.game-popout .main>.messages,body.game-popout .main>.composer-wrap{display:none!important}
body.game-popout .main>.dm-game-panel.game-popout-panel{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;display:flex!important;border:0!important;box-shadow:none!important;background:var(--panel)}
body.game-popout [data-game-surface="popout"]{display:none!important}

/* Frontiers: an original Group DM territory-conquest activity. */
.frontiers-card .dm-game-card-icon{background:radial-gradient(circle at 35% 30%,#77d7ce,#22677f 48%,#142f51);font-weight:900}
.frontiers-invite-list{border:0;padding:0;margin:14px 0 6px;display:grid;gap:5px}.frontiers-invite-list legend{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}.frontiers-invite-list label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:7px;background:color-mix(in srgb,var(--bg) 66%,transparent);color:var(--strong);cursor:pointer}.frontiers-invite-list input{accent-color:var(--accent)}.frontiers-invite-list small{margin-left:auto;color:var(--muted)}
.frontiers-player-list{display:grid;gap:6px}.frontiers-player-list>div{display:grid;grid-template-columns:13px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px;border-radius:8px;background:color-mix(in srgb,var(--bg) 62%,transparent)}.frontiers-player-list i{width:11px;height:11px;border-radius:50%;background:var(--player);box-shadow:0 0 0 3px color-mix(in srgb,var(--player) 25%,transparent)}.frontiers-player-list strong{color:var(--strong);overflow:hidden;text-overflow:ellipsis}.frontiers-player-list strong small{color:var(--muted)}.frontiers-player-list>div>span{font-size:11px;color:var(--muted)}.frontiers-player-list [data-player-status="ready"]{color:var(--green)}.frontiers-player-list [data-player-status="declined"]{color:var(--danger)}.frontiers-lobby-note,.frontiers-waiting{color:var(--muted);line-height:1.45;text-align:center;padding:8px}
.frontiers-turn-order{display:flex;align-items:center;gap:5px;overflow:auto;padding:1px 0 9px;scrollbar-width:none}.frontiers-turn-order span{display:flex;align-items:center;gap:5px;flex:none;max-width:130px;padding:5px 7px;border-radius:999px;color:var(--muted);font-size:10px;background:color-mix(in srgb,var(--bg) 68%,transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frontiers-turn-order i{flex:none;width:8px;height:8px;border-radius:50%;background:var(--player)}.frontiers-turn-order .turn{color:var(--strong);box-shadow:inset 0 0 0 1px var(--accent);background:color-mix(in srgb,var(--accent) 13%,var(--bg))}.frontiers-turn-order .out{text-decoration:line-through;opacity:.48}
.frontiers-map{position:relative;width:100%;aspect-ratio:1.18;border:2px solid color-mix(in srgb,var(--muted) 24%,transparent);border-radius:14px;overflow:hidden;background:#102132;box-shadow:inset 0 0 36px rgba(0,0,0,.5),0 12px 28px rgba(0,0,0,.2);user-select:none}.frontiers-map::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 24% 18%,rgba(91,185,212,.15),transparent 28%),radial-gradient(circle at 76% 25%,rgba(155,120,229,.14),transparent 28%),radial-gradient(circle at 36% 75%,rgba(87,189,124,.13),transparent 30%)}.frontiers-map svg{position:absolute;inset:0;width:100%;height:100%}.frontiers-map line{stroke:rgba(185,213,225,.28);stroke-width:.7;stroke-linecap:round;stroke-dasharray:1.5 1.2}
.frontiers-territory{position:absolute;z-index:2;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:31px;height:31px;padding:0;border:2px solid color-mix(in srgb,var(--owner) 75%,#fff);border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--owner) 74%,#1a2330);color:#fff;box-shadow:0 3px 8px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.24);cursor:pointer}.frontiers-territory b{font-size:11px;line-height:1;font-variant-numeric:tabular-nums}.frontiers-territory span{position:absolute;top:30px;left:50%;transform:translateX(-50%);max-width:62px;padding:1px 3px;border-radius:3px;background:rgba(7,13,20,.72);font-size:7px;font-weight:700;line-height:1.15;white-space:nowrap;color:#dce9ef;pointer-events:none}.frontiers-territory:hover,.frontiers-territory.selected{z-index:4;transform:translate(-50%,-50%) scale(1.16);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 45%,transparent),0 5px 12px rgba(0,0,0,.55)}.frontiers-territory.owned{border-color:#fff}
.frontiers-action-box{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px;padding:10px;border:1px solid color-mix(in srgb,var(--muted) 22%,transparent);border-radius:10px;background:color-mix(in srgb,var(--bg) 70%,transparent)}.frontiers-action-box>strong,.frontiers-action-box>small{grid-column:1/-1}.frontiers-action-box>strong{color:var(--strong)}.frontiers-action-box>small{color:var(--muted)}.frontiers-action-box label{font-size:10px;color:var(--muted)}.frontiers-action-box .field{width:100%;margin-top:4px;min-height:34px;padding:6px 8px}.frontiers-action-box>button{min-height:35px}.frontiers-battle{display:grid;grid-template-columns:1fr auto;gap:3px 8px;padding:9px 10px;margin-top:8px;border-radius:9px;background:color-mix(in srgb,var(--danger) 8%,var(--bg));border:1px solid color-mix(in srgb,var(--danger) 18%,transparent)}.frontiers-battle strong{color:var(--strong)}.frontiers-battle>span,.frontiers-battle small{color:var(--muted)}.frontiers-battle>div{grid-column:1/-1;display:flex;justify-content:center;align-items:center;gap:9px;padding:4px}.frontiers-battle b{padding:4px 7px;border-radius:6px;background:var(--panel);color:var(--strong);font-variant-numeric:tabular-nums}.frontiers-battle i{color:var(--muted);font-size:10px}.frontiers-battle small{grid-column:1/-1;text-align:center}.frontiers-victory{display:flex;align-items:center;justify-content:center;gap:9px;padding:16px;margin-top:9px;border-radius:10px;background:color-mix(in srgb,var(--green) 14%,var(--bg));color:var(--strong)}.frontiers-victory span{font-size:30px;color:#f0b232}
.frontiers-activity{margin-top:10px;border-top:1px solid color-mix(in srgb,var(--muted) 20%,transparent)}.frontiers-activity summary{display:flex;align-items:center;gap:8px;padding:11px 2px;color:var(--strong);font-weight:700;cursor:pointer;list-style:none}.frontiers-activity summary span{min-width:20px;margin-left:auto;padding:2px 5px;border-radius:999px;background:var(--bg);color:var(--muted);font-size:10px;text-align:center}.frontiers-activity>div{max-height:170px;overflow:auto}.frontiers-activity p{display:grid;grid-template-columns:8px 1fr;gap:8px;margin:0;padding:5px 2px;color:var(--muted);font-size:11px}.frontiers-activity p i{width:6px;height:6px;margin-top:4px;border-radius:50%;background:var(--accent)}

/* City Estates: original property trading for DMs and Group DMs. */
.dm-game-library .estate-library-card{margin-top:10px}.estate-library-card .dm-game-card-icon{background:linear-gradient(145deg,#53b88a,#216b6a 48%,#193c55);font-size:25px}.estate-library-card>.primary{margin-top:13px}.estate-panel-head .estate-back{font-size:27px!important;margin-right:1px}.estate-create .dm-game-library-intro{padding-bottom:12px}.estate-rule-note{margin:8px 0;padding:9px 11px;border-radius:8px;background:color-mix(in srgb,var(--bg) 62%,transparent);color:var(--muted);line-height:1.4;text-align:center}.estate-player-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:9px}.estate-player{display:grid;grid-template-columns:11px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;padding:7px 8px;border-radius:8px;background:color-mix(in srgb,var(--bg) 64%,transparent);color:var(--muted)}.estate-player>i{width:10px;height:10px;border-radius:50%;background:var(--token);box-shadow:0 0 0 3px color-mix(in srgb,var(--token) 24%,transparent)}.estate-player>div{min-width:0}.estate-player strong,.estate-player span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.estate-player strong{color:var(--strong);font-size:11px}.estate-player strong small{color:var(--muted)}.estate-player span{margin-top:2px;font-size:9px}.estate-player>b{font-size:16px;color:var(--danger)}.estate-player.turn{box-shadow:inset 0 0 0 1px var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg))}.estate-player.out{opacity:.48;text-decoration:line-through}.estate-player-strip{display:flex;overflow:auto;scrollbar-width:none}.estate-player-strip .estate-player{flex:0 0 min(155px,46%)}
.estate-board{position:relative;width:min(100%,530px);aspect-ratio:1;margin:4px auto 9px;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));gap:1px;padding:3px;border:2px solid #172d37;border-radius:10px;background:#172d37;box-shadow:0 12px 28px rgba(0,0,0,.28);overflow:hidden;user-select:none}.estate-space{position:relative;grid-row:var(--row);grid-column:var(--col);min-width:0;min-height:0;border:0;border-radius:2px;padding:6px 2px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#eef1e8;color:#193039;overflow:hidden;cursor:default;box-shadow:inset 0 -3px 0 var(--owner)}.estate-space>i{position:absolute;left:0;right:0;top:0;height:6px;background:var(--set)}.estate-space>b{font-size:10px;line-height:1}.estate-space>span{max-width:100%;font-size:6px;font-weight:800;line-height:1.05;text-align:center;overflow-wrap:anywhere}.estate-space>small{font-size:6px;margin-top:1px}.estate-space>em{font-size:5px;line-height:1;color:#2d8060;font-style:normal}.estate-space>div{position:absolute;left:2px;right:2px;bottom:2px;display:flex;justify-content:center;gap:1px;z-index:2}.estate-space u{display:block;width:7px;height:7px;border:1px solid #fff;border-radius:50%;background:var(--token);box-shadow:0 1px 2px #0008}.estate-space.mortgaged{filter:grayscale(.72);opacity:.72}.estate-space.mortgaged::after{content:"M";position:absolute;right:1px;bottom:1px;font-size:6px;font-weight:900;color:#a32936}.estate-board-center{grid-column:2/9;grid-row:2/9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:9px;background:radial-gradient(circle at 50% 40%,#e8f6e8,#b8d9cd 68%,#84b5aa);color:#173f43;text-align:center;box-shadow:inset 0 0 34px rgba(27,84,76,.2)}.estate-board-center>strong{font-size:clamp(15px,3vw,28px);letter-spacing:.11em;transform:rotate(-8deg);text-shadow:0 2px 0 #fff9}.estate-board-center>span{font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.estate-dice{display:flex;gap:7px;margin-top:3px}.estate-dice b{width:31px;height:31px;display:grid;place-items:center;border-radius:7px;background:#fff;color:#152b33;font-size:18px;box-shadow:0 5px 10px #2448}.estate-skyline{font-size:22px;letter-spacing:-2px;color:#387b72;opacity:.75}
.estate-action-box{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;margin:8px 0;padding:10px;border:1px solid color-mix(in srgb,var(--muted) 21%,transparent);border-radius:10px;background:color-mix(in srgb,var(--bg) 68%,transparent)}.estate-action-box>strong{color:var(--strong)}.estate-action-box>small{color:var(--muted)}.estate-action-box .estate-roll{min-width:120px}.estate-event{display:flex;align-items:center;gap:9px;margin:8px 0;padding:9px 11px;border-radius:9px;background:linear-gradient(120deg,color-mix(in srgb,#e1aa3b 20%,var(--bg)),color-mix(in srgb,#50b887 14%,var(--bg)));border:1px solid color-mix(in srgb,#e1aa3b 28%,transparent)}.estate-event>span{font-size:25px;color:#e1aa3b}.estate-event strong,.estate-event small{display:block}.estate-event strong{color:var(--strong)}.estate-event small{margin-top:2px;color:var(--muted)}
.estate-properties,.estate-trade{margin-top:9px;border-top:1px solid color-mix(in srgb,var(--muted) 20%,transparent)}.estate-properties>summary,.estate-trade>summary{display:flex;align-items:center;gap:8px;padding:11px 2px;cursor:pointer;color:var(--strong);font-weight:700;list-style:none}.estate-properties>summary span{margin-left:auto;min-width:20px;padding:2px 5px;border-radius:999px;background:var(--bg);color:var(--muted);font-size:10px;text-align:center}.estate-properties>div{display:grid;gap:5px}.estate-properties article{display:grid;grid-template-columns:6px minmax(0,1fr) auto auto auto;align-items:center;gap:5px;padding:6px;border-radius:8px;background:color-mix(in srgb,var(--bg) 66%,transparent)}.estate-properties article>i{align-self:stretch;border-radius:4px;background:var(--set)}.estate-properties article>div{min-width:0}.estate-properties strong,.estate-properties small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.estate-properties strong{color:var(--strong);font-size:11px}.estate-properties small{color:var(--muted);font-size:9px}.estate-properties button{min-width:28px;min-height:27px;padding:4px 6px;font-size:10px}.estate-trade>div{display:grid;gap:8px;padding:2px 0 6px}.estate-trade label{color:var(--muted);font-size:10px}.estate-trade .field{width:100%;min-height:34px;margin-top:4px;padding:6px 8px}.estate-trade-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.estate-trade fieldset{min-width:0;margin:0;padding:8px;border:1px solid color-mix(in srgb,var(--muted) 20%,transparent);border-radius:8px}.estate-trade legend{color:var(--strong);font-size:11px;font-weight:800}.estate-trade fieldset>label:not(:first-of-type){display:flex;align-items:center;gap:6px;margin-top:6px;color:var(--text)}.estate-trade fieldset>small{display:block;margin-top:7px;color:var(--muted)}.estate-trade-offer{margin:9px 0;padding:10px;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:10px;background:color-mix(in srgb,var(--accent) 9%,var(--bg))}.estate-trade-offer>strong{color:var(--strong)}.estate-trade-offer p{margin:7px 0;color:var(--muted);font-size:11px;line-height:1.35}.estate-trade-offer p b{color:var(--strong)}.estate-activity{margin-top:8px}

/* v1.6.0.41 Pulse — contain dynamic message, attachment, and dialog content. */
.message>div:last-child,
.message .content,
.message .reply-preview,
.file-attachment>span:nth-child(2),
.pending-attachment>div,
.messagebox,
.messagebox>p{min-width:0;max-width:100%}
.pending-attachment:not([hidden]):not(:empty){width:min(420px,100%)}
.messagebox>p{overflow-wrap:anywhere}
.messagebox-actions>button{max-width:100%;white-space:normal}
@media(max-width:480px){
 .messagebox-actions>button{flex:1 1 120px}
}


/* v1.6.0.44 — Discord-style image selection, cropping and avatar controls */
.modal-image-editor{width:min(590px,94vw);max-width:590px;max-height:min(820px,94dvh);overflow:auto;padding:24px}
.image-editor-shell{display:grid;gap:16px;min-width:0}
.image-editor-head{padding-right:34px}.image-editor-head h2{margin:0 0 6px;color:var(--strong);font-size:22px}.image-editor-head p{margin:0;color:var(--muted);line-height:1.45}
.image-editor-stage{position:relative;width:min(100%,520px);aspect-ratio:var(--image-editor-aspect,1);justify-self:center;overflow:hidden;border:2px solid color-mix(in srgb,var(--accent) 68%,var(--settings-border));background:repeating-conic-gradient(color-mix(in srgb,var(--input) 88%,#fff) 0 25%,color-mix(in srgb,var(--panel) 86%,#000) 0 50%) 50%/18px 18px;box-shadow:0 10px 34px #0005;cursor:grab;touch-action:none;user-select:none;outline:none}
.image-editor-stage:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 42%,transparent),0 10px 34px #0005}.image-editor-stage.is-dragging{cursor:grabbing}
.image-editor-stage canvas{display:block;width:100%;height:100%;pointer-events:none}
.image-editor-circle{max-width:360px;border-radius:50%}.image-editor-rounded{border-radius:18px}.image-editor-rectangle{border-radius:8px}
.image-editor-grid{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to right,transparent 33.1%,#fff5 33.2% 33.55%,transparent 33.65% 66.35%,#fff5 66.45% 66.8%,transparent 66.9%),linear-gradient(to bottom,transparent 33.1%,#fff5 33.2% 33.55%,transparent 33.65% 66.35%,#fff5 66.45% 66.8%,transparent 66.9%);box-shadow:inset 0 0 0 1px #fff5,inset 0 0 50px #0004}
.image-editor-circle .image-editor-grid{border-radius:50%;box-shadow:inset 0 0 0 2px #fff8,inset 0 0 54px #0006}
.image-editor-toolbar{display:flex;align-items:center;gap:10px;min-width:0}.image-editor-toolbar>.icon-btn{flex:none;width:38px;height:38px}.image-editor-rotate-left .app-icon{transform:scaleX(-1)}
.image-editor-zoom{display:grid;grid-template-columns:auto minmax(100px,1fr) 44px;align-items:center;gap:10px;min-width:0;flex:1;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.image-editor-zoom input{width:100%;accent-color:var(--accent)}.image-editor-zoom output{text-align:right;color:var(--strong);font-variant-numeric:tabular-nums}
.image-editor-help{margin:-6px 0 0;color:var(--muted);font-size:12px;text-align:center}
.image-editor-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.image-editor-actions button{min-width:96px}
.image-editor-animated-preview{display:grid;place-items:center;min-height:240px;max-height:430px;overflow:hidden;border-radius:14px;background:var(--settings-inner-bg,var(--input));border:1px solid var(--settings-border)}.image-editor-animated-preview img{display:block;max-width:100%;max-height:430px;object-fit:contain}
.account-avatar-wrap{position:relative;overflow:visible}

/* v1.6.0.45 — unified Discord-style profile media and image editing */
.image-editor-stage{
  border-radius:12px;
  isolation:isolate;
  background-color:#111214;
}
.image-editor-circle{max-width:440px;border-radius:12px}
.image-editor-stage canvas{position:relative;z-index:1}
.image-editor-crop-mask{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  border:2px solid color-mix(in srgb,#fff 82%,transparent);
  border-radius:inherit;
  box-shadow:inset 0 0 44px #0003;
}
.image-editor-circle .image-editor-crop-mask{
  inset:8%;
  border-radius:50%;
  border-color:#fff;
  box-shadow:0 0 0 999px #0009,inset 0 0 0 1px #0005;
}
.image-editor-grid{z-index:3;opacity:.42;border-radius:inherit}
.image-editor-circle .image-editor-grid{inset:8%;border-radius:50%;box-shadow:none}
.image-editor-toolbar{
  display:grid;
  grid-template-columns:38px minmax(150px,1fr) 38px 1px 38px 38px auto;
  align-items:center;
  gap:9px;
  padding:12px;
  border:1px solid var(--settings-border);
  border-radius:10px;
  background:var(--settings-inner-bg,var(--input));
}
.image-editor-toolbar>.icon-btn{width:38px;height:38px;min-width:38px}
.image-editor-zoom-out>span{font-size:24px;line-height:1;transform:translateY(-1px)}
.image-editor-toolbar-divider{width:1px;height:26px;background:var(--settings-border)}
.image-editor-reset{height:38px;min-width:76px;padding-inline:13px}
.image-editor-zoom{grid-template-columns:auto minmax(90px,1fr) 42px;gap:8px}
.image-editor-actions{
  align-items:center;
  border-top:1px solid var(--settings-border);
  margin-top:2px;
  padding-top:14px;
}
.image-editor-actions .image-editor-skip{margin-left:auto}
.image-editor-actions .image-editor-apply{min-width:110px}
.image-editor-animated .image-editor-actions .image-editor-original{margin-left:auto}

.profile-settings-head{align-items:flex-start}
.profile-settings-head p{margin:7px 0 0;color:var(--muted);line-height:1.4}
.profile-settings-grid{grid-template-columns:minmax(0,1fr) minmax(290px,340px);gap:28px;align-items:start}
.profile-settings-form{display:grid;gap:9px;min-width:0}
.profile-settings-form>label{margin:12px 0 0;color:var(--strong);font-size:12px;font-weight:800;text-transform:uppercase}
.profile-media-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:18px;
  min-width:0;
  padding:16px;
  border:1px solid var(--settings-border);
  border-radius:10px;
  background:var(--settings-card-bg);
}
.profile-avatar-control{
  position:relative;
  width:92px;
  height:92px;
  min-width:92px;
  padding:7px;
  border-radius:50%;
  background:var(--settings-card-bg);
  box-sizing:border-box;
}
.profile-avatar-control .avatar.large{width:78px;height:78px;margin:0;border:0;font-size:28px}
.profile-avatar-control .status-dot{display:none}
.profile-media-copy{min-width:0}
.profile-media-copy strong,.profile-media-copy small{display:block}
.profile-media-copy strong{color:var(--strong)}
.profile-media-copy small{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.4}
.settings-field-stack{display:grid;gap:6px;min-width:0}
.settings-field-stack .field{width:100%;min-width:0}
.profile-bio-character-count{justify-self:end;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.profile-preview-column{position:sticky;top:0;display:grid;gap:8px;min-width:0}
.profile-preview-label{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.profile-preview-card.discord-profile-preview{
  width:100%;
  margin:0;
  border:1px solid var(--settings-border);
  border-radius:12px;
  box-shadow:0 10px 28px color-mix(in srgb,#000 24%,transparent);
}
.discord-profile-preview .profile-banner{height:112px;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 40%,var(--panel)))}
.discord-profile-preview .profile-preview-body{min-height:190px;padding:58px 18px 18px}
.profile-preview-avatar-shell{
  position:absolute;
  top:-48px;
  left:18px;
  width:92px;
  height:92px;
  padding:6px;
  border-radius:50%;
  background:var(--settings-card-bg);
  box-sizing:border-box;
}
.profile-preview-avatar-shell .avatar.large{
  position:static;
  width:80px;
  height:80px;
  margin:0;
  border:0;
}
.discord-profile-preview .username-line{display:block;min-width:0;color:var(--strong);font-size:20px;line-height:1.25;overflow:hidden;text-overflow:ellipsis}
.discord-profile-preview .profile-preview-status{margin-top:5px}
.profile-preview-bio{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--settings-border);color:var(--text);line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.profile-preview-bio.is-empty{color:var(--muted);font-style:italic}
.server-profile-fields{gap:9px;padding:18px;border-radius:12px}
.server-profile-fields textarea{min-height:144px}

/* v1.6.0.47 — one media-control mechanism for profile, server, and bot images. */
.media-control-group{position:relative;min-width:0}
.media-control-button{
  appearance:none;
  display:grid;
  font:inherit;
  line-height:1;
  place-items:center;
  width:32px;
  height:32px;
  min-width:32px;
  min-height:32px;
  padding:0;
  border:3px solid var(--settings-card-bg,var(--panel));
  border-radius:50%;
  color:#fff;
  box-shadow:0 4px 12px #0008;
  cursor:pointer;
  transition:filter .14s ease,transform .14s ease,background-color .14s ease,opacity .14s ease;
}
.media-control-button .app-icon{width:14px;height:14px;margin:0}
.media-control-button:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}
.media-control-button:active:not(:disabled){transform:none}
.media-control-button:focus-visible{outline:2px solid color-mix(in srgb,#fff 82%,var(--accent));outline-offset:2px}
.media-control-button:disabled{opacity:.55;cursor:not-allowed;transform:none}
.media-control-button[hidden]{display:none!important}
.media-control-edit{position:absolute;right:-3px;bottom:2px;background:var(--accent)}
.media-control-remove{position:absolute;right:-3px;top:-3px;background:var(--app-button-danger)}

.server-profile-preview-shell{position:relative;min-width:0}
.server-profile-banner-controls,.server-banner-controls{
  position:absolute;
  z-index:6;
  top:12px;
  right:12px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}
.server-banner-controls{top:14px;right:14px}
.media-control-banner-edit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  width:auto;
  min-width:0;
  min-height:34px;
  height:34px;
  padding:7px 10px;
  border:1px solid #ffffff2b;
  border-radius:6px;
  background:#111214c9;
  color:#fff;
  box-shadow:0 5px 16px #0007;
}
.media-control-banner-edit .app-icon{width:15px;height:15px}
.server-profile-banner-controls>.media-control-remove,
.server-banner-controls>.media-control-remove{
  position:static;
  width:34px;
  height:34px;
  min-width:34px;
  min-height:34px;
  border:1px solid #ffffff2b;
  background:#111214d9;
  color:#ff6b70;
}
.server-profile-preview-shell :is(.server-profile-banner-controls,.server-profile-avatar-control),
.server-overview-assets .server-banner-controls,
.server-overview-assets .server-icon-control .media-control-button{opacity:0;transition:opacity .14s ease}
.server-profile-preview-shell:hover :is(.server-profile-banner-controls,.server-profile-avatar-control),
.server-profile-preview-shell:focus-within :is(.server-profile-banner-controls,.server-profile-avatar-control),
.server-overview-assets:hover .server-banner-controls,
.server-overview-assets:focus-within .server-banner-controls,
.server-overview-assets:hover .server-icon-control .media-control-button,
.server-overview-assets:focus-within .server-icon-control .media-control-button{opacity:1}

.server-profile-avatar-control{
  position:absolute;
  z-index:7;
  left:18px;
  top:82px;
  width:86px;
  height:86px;
  pointer-events:none;
}
.server-profile-avatar-control .media-control-button{pointer-events:auto}
.server-profile-avatar-control .media-control-edit{right:-4px;bottom:-4px}
.server-profile-avatar-control .media-control-remove{right:-4px;top:-4px}
.server-icon-control{
  position:absolute;
  z-index:5;
  left:20px;
  top:90px;
  width:86px;
  height:86px;
}
.server-icon-control .server-icon-preview{
  position:static;
  width:86px;
  height:86px;
  box-sizing:border-box;
}
.server-icon-control .media-control-edit{right:-4px;bottom:-4px}
.server-icon-control .media-control-remove{right:-4px;top:-4px}

.developer-bot-avatar-control.media-control-group .developer-bot-avatar-remove{
  border-color:var(--settings-card-bg,var(--panel));
  background:var(--danger);
  color:#fff;
}

.messagebox-no-description .messagebox-header{align-items:center}
.messagebox-no-description .messagebox-header h2{margin-bottom:0}

@media (hover:none){
 .server-profile-preview-shell :is(.server-profile-banner-controls,.server-profile-avatar-control),
 .server-overview-assets .server-banner-controls,
 .server-overview-assets .server-icon-control .media-control-button{opacity:1}
}

@media(max-width:900px){
 .profile-settings-grid{grid-template-columns:minmax(0,1fr);gap:20px}
 .profile-preview-column{position:static}
 .discord-profile-preview{width:min(100%,380px);justify-self:center}
}
@media(max-width:700px){
 .server-overview-assets{min-height:226px}
 .profile-media-card{gap:14px;padding:14px}
 .server-profile-banner-controls,.server-banner-controls{top:10px;right:10px}
}
@media(max-width:430px){
 .media-control-banner-edit{width:36px;height:36px;min-width:36px;padding:0}
 .media-control-banner-edit span{display:none}
 .server-profile-banner-controls>.media-control-remove,
 .server-banner-controls>.media-control-remove{width:36px;height:36px;min-width:36px;min-height:36px}
}
.developer-bot-avatar-control.media-control-group .developer-bot-avatar-preview{cursor:default;pointer-events:none;transform:none!important;filter:none!important}
.developer-bot-avatar-control.media-control-group>.media-control-edit{right:-3px;bottom:-3px}


/* v1.6.0.48 — Discord-style confirmations, hover-only profile media controls, and profile presence alignment. */
.messagebox-confirm .messagebox-header{display:block;padding:24px 24px 16px}
.messagebox-confirm .messagebox-copy{width:100%;min-width:0}
.messagebox-confirm .messagebox-copy h2{margin:0 0 8px;font-size:20px;line-height:24px}
.messagebox-confirm.messagebox-no-description .messagebox-copy h2{margin-bottom:0}
.messagebox-confirm .messagebox-copy p{color:var(--text);font-size:14px;line-height:20px}
.messagebox-confirm .messagebox-actions{padding:16px 24px}

.profile-avatar-control .media-control-button{
  opacity:0;
  pointer-events:none;
  transition:filter .14s ease,transform .14s ease,background-color .14s ease,opacity .14s ease;
}
.profile-avatar-control:hover .media-control-button,
.profile-avatar-control:focus-within .media-control-button{
  opacity:1;
  pointer-events:auto;
  transition-delay:0s;
}
.profile-avatar-control:hover .avatar.large,
.profile-avatar-control:focus-within .avatar.large{filter:brightness(.82)}

.profile-preview-avatar-shell .avatar.large{position:relative;inset:auto;top:auto;right:auto;bottom:auto;left:auto;margin:0;border:0}
.discord-profile-preview .profile-preview-avatar-shell .status-dot{
  z-index:2;
  width:24px;
  height:24px;
  right:-2px;
  bottom:-2px;
  border:5px solid var(--settings-card-bg,var(--panel));
}
.profile-name-heading>.profile-bot-tag{flex:0 0 auto;margin-left:8px}

@media (hover:none){
 .profile-avatar-control .media-control-button{opacity:1;pointer-events:auto;transition-delay:0s}
 .profile-avatar-control .avatar.large{filter:none}
}

/* v1.6.0.51 — Bot API message button components. */
.message-components{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  width:min(100%,520px);
  margin-top:8px;
}
.message-component-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  max-width:100%;
}
.message-component-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-width:60px;
  min-height:32px;
  max-width:100%;
  padding:2px 16px;
  border:0;
  border-radius:3px;
  box-sizing:border-box;
  color:#fff;
  font-family:inherit;
  font-size:14px;
  font-weight:600;
  line-height:20px;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
  user-select:none;
  transition:background-color .14s ease,opacity .14s ease,transform .08s ease;
}
.message-component-button:hover{text-decoration:none}
.message-component-button:active:not(:disabled):not([aria-disabled="true"]){transform:translateY(1px)}
.message-component-button:focus-visible{outline:2px solid var(--focus-ring,var(--brand));outline-offset:2px}
.message-component-button.component-primary{background:var(--app-button-primary-bg)}.message-component-button.component-primary:hover{background:var(--app-button-primary-hover)}
.message-component-button.component-secondary,.message-component-button.component-link{background:var(--app-button-secondary-bg);color:var(--app-button-secondary-text)}
.message-component-button.component-secondary:hover,.message-component-button.component-link:hover{background:var(--app-button-secondary-hover)}
.message-component-button.component-success{background:var(--green)}.message-component-button.component-success:hover{background:color-mix(in srgb,var(--green) 84%,#000)}
.message-component-button.component-danger{background:var(--app-button-danger)}.message-component-button.component-danger:hover{background:color-mix(in srgb,var(--app-button-danger) 84%,#000)}
.message-component-button:disabled,.message-component-button[aria-disabled="true"]{opacity:.5;cursor:not-allowed;pointer-events:none;transform:none}
.message-component-button[aria-busy="true"]{position:relative;color:transparent!important;pointer-events:none}
.message-component-button[aria-busy="true"]::after{content:"";position:absolute;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;color:#fff;animation:message-component-spin .7s linear infinite}
.message-component-emoji{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:16px;line-height:1}
.message-component-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.message-component-button>svg{width:14px;height:14px;flex:0 0 auto}

@keyframes message-component-spin{to{transform:rotate(360deg)}}
@media(max-width:700px){
 .message-components{width:100%}
 .message-component-row{width:100%}
 .message-component-button{flex:1 1 auto;min-width:min(120px,100%);padding-inline:12px}
}

/* v1.6.0.53 Pulse — fixed bot badge identity and unified connected voice card. */
.bot-tag{
  background:#5865f2!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border:0!important;
  box-shadow:none!important;
}
.message .msg-head{
  align-items:center;
  min-height:18px;
  line-height:18px;
}
.message .msg-head>.message-username-line{
  margin-right:4px;
  line-height:18px;
}
.message .msg-head>.bot-tag{
  flex:0 0 auto;
  align-self:center;
  height:15px;
  min-height:15px;
  margin:0 6px 0 0;
  padding:0 4px;
  font-size:9px!important;
  line-height:15px!important;
  letter-spacing:.025em;
  vertical-align:initial;
}


/* v1.6.0.55 Pulse — compact Discord-style connected voice panel with tighter user-bar spacing. */
.sidebar-voice-box{
  flex:none;
  min-width:0;
  margin:auto 6px 4px;
  padding:5px 6px;
  border:1px solid color-mix(in srgb,var(--muted) 16%,transparent);
  border-radius:10px;
  background:var(--userbar-bg,color-mix(in srgb,var(--input) 82%,var(--panel)));
  box-shadow:none;
  overflow:hidden;
}
.sidebar-voice-box[hidden]{display:none!important}
.sidebar-voice-box .voice-box-main{
  min-width:0;
  min-height:44px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:4px;
}
.sidebar-voice-box .voice-box-summary{
  min-width:0;
  width:100%;
  min-height:40px;
  margin:0;
  padding:4px;
  display:grid;
  grid-template-columns:18px minmax(0,1fr);
  align-items:center;
  gap:8px;
  border:0;
  border-radius:6px;
  background:transparent;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.sidebar-voice-box .voice-box-summary:hover,
.sidebar-voice-box .voice-box-summary:focus-visible{background:var(--hover)}
.sidebar-voice-box .voice-box-summary:focus-visible{
  outline:2px solid var(--focus-ring,var(--accent));
  outline-offset:-2px;
}
.sidebar-voice-box .voice-box-state-icon{
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  color:var(--green);
  flex:none;
}
.sidebar-voice-box .voice-box-state-icon .app-icon{width:18px;height:18px;stroke-width:2.15}
.sidebar-voice-box.connecting .voice-box-state-icon{color:var(--yellow);animation:voicePulse 1s ease-in-out infinite}
.sidebar-voice-box.error .voice-box-state-icon{color:var(--danger)}
.sidebar-voice-box .voice-box-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:1px;
}
.sidebar-voice-box .voice-box-status{
  min-width:0;
  display:block;
  overflow:hidden;
}
.sidebar-voice-box .voice-box-status strong{
  display:block;
  min-width:0;
  margin:0;
  color:var(--green);
  font-size:12px;
  font-weight:700;
  line-height:16px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.sidebar-voice-box.connecting .voice-box-status strong{color:var(--yellow)}
.sidebar-voice-box.error .voice-box-status strong{color:var(--danger)}
.sidebar-voice-box .voice-box-location{
  min-width:0;
  margin:0;
  padding:0;
  display:flex;
  align-items:center;
  gap:4px;
  color:var(--muted);
  font-size:11px;
  font-weight:500;
  line-height:14px;
  white-space:nowrap;
  overflow:hidden;
}
.sidebar-voice-box .voice-box-channel,
.sidebar-voice-box .voice-box-server{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sidebar-voice-box .voice-box-channel{
  flex:0 1 auto;
  color:color-mix(in srgb,var(--strong) 78%,var(--muted));
}
.sidebar-voice-box .voice-box-separator{
  flex:none;
  color:color-mix(in srgb,var(--muted) 58%,transparent);
}
.sidebar-voice-box .voice-box-server{flex:1 1 auto}
.sidebar-voice-box .voice-box-actions{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:2px;
  margin:0;
}
.sidebar-voice-box .voice-box-actions .icon-btn,
.sidebar-voice-box .voice-box-actions .secondary{
  width:32px;
  height:32px;
  min-width:32px;
  min-height:32px;
  margin:0;
  padding:6px;
  display:grid;
  place-items:center;
  border-radius:6px;
  background:transparent;
}
.sidebar-voice-box .voice-box-actions .icon-btn:hover,
.sidebar-voice-box .voice-box-actions .icon-btn:focus-visible,
.sidebar-voice-box .voice-box-actions .secondary:hover,
.sidebar-voice-box .voice-box-actions .secondary:focus-visible{background:var(--hover)}
.sidebar-voice-box .voice-box-retry{color:var(--muted)}
.sidebar-voice-box .voice-box-disconnect{color:var(--app-button-danger)}
.sidebar-voice-box .voice-box-disconnect:hover,
.sidebar-voice-box .voice-box-disconnect:focus-visible{
  background:var(--app-button-danger-soft)!important;
  color:color-mix(in srgb,var(--app-button-danger) 82%,#fff);
}
.sidebar-voice-box .voice-box-error{display:none!important}
@media(prefers-reduced-motion:reduce){.sidebar-voice-box.connecting .voice-box-state-icon{animation:none}}

/* v1.6.0.56 Pulse — merge the connected voice panel and user bar into one footer card. */
.sidebar.voice-footer-connected .sidebar-voice-box.connected{
  margin:auto 6px 0;
  padding:5px 6px 4px;
  border-bottom:0;
  border-radius:12px 12px 0 0;
  background:color-mix(in srgb,var(--userbar-bg,color-mix(in srgb,var(--input) 82%,var(--panel))) 84%,var(--panel));
  position:relative;
}
.sidebar.voice-footer-connected .sidebar-voice-box.connected::after{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  bottom:0;
  height:1px;
  background:color-mix(in srgb,var(--muted) 17%,transparent);
  pointer-events:none;
}
.sidebar.voice-footer-connected .sidebar-voice-box.connected .voice-box-main{min-height:42px}
.sidebar.voice-footer-connected .sidebar-voice-box.connected .voice-box-summary{min-height:38px}
.sidebar.voice-footer-connected .userbar{
  margin:0 6px 6px;
  border-top:0;
  border-radius:0 0 12px 12px;
  box-shadow:none;
}
:root[data-theme="light"] .sidebar.voice-footer-connected .sidebar-voice-box.connected,
:root[data-theme="light"] .sidebar.voice-footer-connected .userbar{
  border-color:#c7c9cd!important;
}
:root[data-theme^="liquid-glass"] .sidebar.voice-footer-connected .sidebar-voice-box.connected,
:root[data-theme^="liquid-glass"] .sidebar.voice-footer-connected .userbar{
  background-color:color-mix(in srgb,var(--top) 86%,transparent)!important;
}

/* Discord-inspired authentication and secure QR device pairing. */
.auth.auth-screen{--auth-card-radius:16px;--auth-control-radius:9px;--auth-panel-radius:11px;position:relative;isolation:isolate;display:grid;place-items:center;min-height:100%;height:100%;overflow:auto;padding:76px 24px 40px;background:var(--auth-theme-image,none),linear-gradient(135deg,#5865f2 0%,#4752c4 42%,#3b4395 100%);background-size:cover,auto;background-position:center;background-repeat:no-repeat;text-align:left}
.auth.auth-screen::before{content:"";position:fixed;inset:0;z-index:-3;background:radial-gradient(circle at 16% 18%,rgba(255,255,255,.18),transparent 24%),radial-gradient(circle at 84% 78%,rgba(24,25,28,.28),transparent 31%),linear-gradient(120deg,transparent 0 48%,rgba(255,255,255,.035) 48% 52%,transparent 52%)}
.auth-scene{position:fixed;inset:0;z-index:-2;overflow:hidden;pointer-events:none}
.auth-scene i{position:absolute;display:block;border:3px solid rgba(255,255,255,.13);border-radius:28px;transform:rotate(26deg);box-shadow:0 0 0 14px rgba(255,255,255,.025)}
.auth-scene i:nth-child(1){width:240px;height:240px;left:-70px;top:16%}
.auth-scene i:nth-child(2){width:420px;height:190px;right:-115px;top:7%;transform:rotate(-18deg)}
.auth-scene i:nth-child(3){width:190px;height:390px;left:12%;bottom:-190px;transform:rotate(56deg)}
.auth-scene i:nth-child(4){width:320px;height:320px;right:13%;bottom:-185px;border-radius:50%;transform:none}
.auth-brand-lockup{position:fixed;top:24px;left:32px;z-index:2;display:flex;align-items:center;gap:11px;color:#fff;font-size:20px;font-weight:800;letter-spacing:-.02em;text-shadow:0 2px 10px rgba(0,0,0,.2)}
.auth-brand-lockup .brandmark{width:38px;height:38px;margin:0;border-radius:12px;font-size:20px;box-shadow:0 8px 22px rgba(17,18,20,.2)}
.auth-card.auth-card-discord{display:grid;width:min(784px,calc(100vw - 48px));grid-template-columns:minmax(0,1fr);gap:0;padding:32px;background:#313338;color:#dbdee1;border:1px solid rgba(255,255,255,.035);border-radius:var(--auth-card-radius);box-shadow:0 20px 52px rgba(0,0,0,.42),0 2px 8px rgba(0,0,0,.24)}
.auth-card.auth-card-discord.has-qr{grid-template-columns:minmax(360px,1fr) 240px;gap:64px}
.auth-card.auth-register-card,.auth-card.auth-approval-entry{width:min(480px,calc(100vw - 48px))}
.auth-form-column{min-width:0}
.auth-heading{text-align:center;margin-bottom:20px}
.auth-heading h1,.auth-two-factor-card h1{margin:0;color:#f2f3f5;font-size:24px;line-height:1.25;font-weight:700}
.auth-heading p,.auth-two-factor-card>p{margin:8px 0 0;color:#b5bac1;font-size:16px;line-height:1.35;text-align:center}
.auth-form{margin:0}
.auth-card-discord label,.auth-two-factor-card label{margin:20px 0 8px;color:#b5bac1;font-size:12px;line-height:1.3;font-weight:700;letter-spacing:.02em}
.auth-card-discord .field,.auth-two-factor-card .field{height:40px;padding:10px;background:#1e1f22;color:#f2f3f5;border:1px solid transparent;border-radius:var(--auth-control-radius);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.auth-card-discord .field:hover,.auth-two-factor-card .field:hover{border-color:#111214}
.auth-card-discord .field:focus,.auth-two-factor-card .field:focus{border-color:#00a8fc;box-shadow:0 0 0 1px #00a8fc;background:#1e1f22}
.auth-card-discord .primary.full,.auth-two-factor-card .primary.full{min-height:44px;margin-top:20px;background:var(--app-button-primary-bg);color:#fff;border-radius:var(--auth-control-radius);transition:background .15s ease,transform .08s ease}
.auth-card-discord .primary.full:hover,.auth-two-factor-card .primary.full:hover{background:var(--app-button-primary-hover)}
.auth-card-discord .primary.full:active,.auth-two-factor-card .primary.full:active{transform:translateY(1px)}
.auth-card-discord .primary.full:disabled,.auth-two-factor-card .primary.full:disabled{opacity:.65;cursor:not-allowed}
.auth-switch-copy{margin:10px 0 0!important;text-align:left!important;color:#949ba4!important;font-size:14px!important}
.auth-cookie-settings{display:block;margin-top:14px;font-size:13px}
.auth-password-help{display:block;margin-top:7px;color:#949ba4;line-height:1.35}
.auth-error:empty{display:none}
.auth-error .error{margin:14px 0 0;background:rgba(218,55,60,.18);border:1px solid rgba(218,55,60,.45);border-radius:var(--auth-control-radius);color:#ffd7d9}
.auth-beta-badge,.auth-qr-entry-notice{display:flex;align-items:flex-start;gap:11px;margin:0 0 20px;padding:12px 13px;border-radius:var(--auth-panel-radius);background:#2b2d31;border:1px solid #3f4147;color:#dbdee1}
.auth-beta-badge>.app-icon,.auth-qr-entry-notice>.app-icon{width:22px;height:22px;flex:none;color:#f0b232}
.auth-qr-entry-notice>.app-icon{color:#23a55a}
.auth-beta-badge span,.auth-qr-entry-notice span{min-width:0}
.auth-beta-badge strong,.auth-beta-badge small,.auth-qr-entry-notice strong,.auth-qr-entry-notice small{display:block}
.auth-beta-badge small,.auth-qr-entry-notice small{margin-top:3px;color:#b5bac1;line-height:1.35}
.auth-qr-column{display:flex;align-items:center;justify-content:center;flex-direction:column;min-width:0;text-align:center}
.auth-qr-code{position:relative;isolation:isolate;overflow:hidden;display:grid;place-items:center;width:184px;height:184px;padding:4px;background:#fff;border-radius:var(--auth-panel-radius);box-shadow:0 8px 24px rgba(0,0,0,.22)}
.auth-qr-code canvas{display:block!important;width:176px!important;height:176px!important;border-radius:2px;transform-origin:center}
.auth-qr-code img{display:none!important}
.auth-qr-code .auth-qr-logo{position:absolute;left:50%;top:50%;z-index:1;width:42px;height:42px;transform:translate(-50%,-50%);display:grid;place-items:center;border-radius:11px;background:#fff;box-shadow:0 0 0 2px #fff;pointer-events:none}
.auth-qr-code .auth-qr-logo img{display:block!important;width:30px!important;height:30px!important;object-fit:contain;user-select:none;pointer-events:none}
.auth-qr-code::before,.auth-qr-code::after{content:"";position:absolute;pointer-events:none;opacity:0;z-index:2}
.auth-qr-code::before{inset:4px;border-radius:2px;background:rgba(255,255,255,.94)}
.auth-qr-code::after{width:30px;height:30px;border:4px solid #d7d9dc;border-top-color:#5865f2;border-radius:50%;left:calc(50% - 19px);top:calc(50% - 19px)}
.auth-qr-code.is-refreshing::before{animation:auth-qr-mask-in .18s ease forwards}
.auth-qr-code.is-refreshing::after{opacity:1;animation:auth-qr-spin .72s linear infinite,auth-qr-spinner-in .18s ease-out both}
.auth-qr-code.is-refreshing canvas{animation:auth-qr-code-out .18s ease forwards}
.auth-qr-code.is-refreshing .auth-qr-logo{animation:auth-qr-logo-out .18s ease forwards}
.auth-qr-code.is-entering canvas{animation:auth-qr-code-in .28s cubic-bezier(.2,.8,.2,1) both}
.auth-qr-code.is-entering .auth-qr-logo{animation:auth-qr-logo-in .28s cubic-bezier(.2,.8,.2,1) both}
.auth-qr-column h2{margin:20px 0 8px;color:#f2f3f5;font-size:24px;line-height:1.2}
.auth-qr-column>p{margin:0;color:#b5bac1;font-size:15px;line-height:1.35}
.auth-qr-status{min-height:18px;margin-top:12px;color:#949ba4;font-size:12px;line-height:1.4}
.auth-qr-status.bad{color:#f23f42}
.auth-qr-refresh{margin-top:5px;font-size:13px}
.auth-qr-loader{width:34px;height:34px;border:4px solid #d7d9dc;border-top-color:#5865f2;border-radius:50%;animation:auth-qr-spin .8s linear infinite}
.auth-qr-expired{display:grid;place-items:center;width:64px;height:64px;color:#5865f2;border-radius:50%;background:#e9eaff}
.auth-qr-expired .app-icon{width:34px;height:34px}
@keyframes auth-qr-spin{to{transform:rotate(360deg)}}
@keyframes auth-qr-mask-in{from{opacity:0}to{opacity:1}}
@keyframes auth-qr-spinner-in{from{opacity:0;scale:.72}to{opacity:1;scale:1}}
@keyframes auth-qr-code-out{to{opacity:.08;transform:scale(.92)}}
@keyframes auth-qr-code-in{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
@keyframes auth-qr-logo-out{to{opacity:.08;transform:translate(-50%,-50%) scale(.92)}}
@keyframes auth-qr-logo-in{from{opacity:0;transform:translate(-50%,-50%) scale(.92)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.auth-card.auth-two-factor-card{position:relative;width:min(480px,calc(100vw - 48px));padding:32px;background:#313338;color:#dbdee1;border:1px solid rgba(255,255,255,.035);border-radius:var(--auth-card-radius);box-shadow:0 20px 52px rgba(0,0,0,.42);text-align:left}
.auth-two-factor-card .auth-security-icon{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 16px;border-radius:17px;background:#5865f2;color:#fff}
.auth-two-factor-card .auth-security-icon .app-icon{width:29px;height:29px}
.auth-two-factor-card .auth-two-factor-back{display:block;margin:16px auto 0}
.qr-login-approval-dialog{text-align:center}
.qr-login-approval-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 15px;border-radius:18px;background:#5865f2;color:#fff}
.qr-login-approval-icon .app-icon{width:30px;height:30px}
.qr-login-approval-dialog h2{margin:0 0 8px;color:var(--strong)}
.qr-login-approval-dialog>p{margin:0;color:var(--muted);line-height:1.45}
.qr-login-device-card{display:flex;align-items:center;gap:12px;margin:20px 0;padding:14px;text-align:left;border-radius:var(--auth-panel-radius);background:var(--rail);border:1px solid #3f4147}
.qr-login-device-card>.app-icon{width:28px;height:28px;flex:none;color:var(--accent)}
.qr-login-device-card span{min-width:0}
.qr-login-device-card strong,.qr-login-device-card small{display:block}
.qr-login-device-card strong{color:var(--strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qr-login-device-card small{margin-top:4px;color:var(--muted);line-height:1.35}
.qr-login-approval-error{margin:0 0 12px;text-align:left}

/* v1.6.0.75: let the browser skip layout/paint for off-screen message and member rows.
   v1.6.0.76: release paint containment for the active message so its floating
   action toolbar can overlap the preceding row without being clipped. */
.message-feed > .message:hover,
.message-feed > .message:focus-within,
.message-feed > .message.actions-open{z-index:6}
@supports (content-visibility:auto){
 .message-feed > .message{content-visibility:auto;contain-intrinsic-size:auto 76px}
 .message-feed > .message:hover,
 .message-feed > .message:focus-within,
 .message-feed > .message.actions-open{content-visibility:visible;contain:none}
 .members .member,.members .member-row{content-visibility:auto;contain-intrinsic-size:auto 44px}
}

/* v1.6.0.82 consolidated voice and application-sound controls. */
.voice-device-card .voice-application-sounds-row{margin-top:18px;padding-top:16px;border-top:1px solid color-mix(in srgb,var(--muted) 12%,transparent)}

/* v1.6.0.83 — Discord-style mobile-only presence.
   The phone replaces the normal online dot only while the active clients are
   mobile-only. Idle, DND, invisible/offline, bots, and mixed desktop/mobile
   sessions continue to use their normal presence markers. */
.status-dot.mobile-online[data-status="online"]{
  --mobile-presence-cutout:var(--panel);
  width:12px!important;
  height:18px!important;
  right:-2px!important;
  bottom:-3px!important;
  border-width:3px!important;
  border-radius:4px!important;
  background:var(--green)!important;
}
.status-dot.mobile-online[data-status="online"]::before{
  content:"";
  position:absolute;
  inset:2px 1px 4px;
  border-radius:1px;
  background:var(--mobile-presence-cutout);
}
.status-dot.mobile-online[data-status="online"]::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:1px;
  width:2px;
  height:2px;
  border-radius:50%;
  background:var(--mobile-presence-cutout);
  transform:translateX(-50%);
}
.profile-avatar-wrap .avatar.large .status-dot.mobile-online[data-status="online"],
.profile-preview-body .avatar.large .status-dot.mobile-online[data-status="online"],
.discord-profile-preview .profile-preview-avatar-shell .status-dot.mobile-online[data-status="online"],
.member-role-v2-avatar-wrap>.avatar.large .status-dot.mobile-online[data-status="online"]{
  width:18px!important;
  height:28px!important;
  right:-1px!important;
  bottom:-3px!important;
  border-width:5px!important;
  border-radius:6px!important;
}
.profile-preview-body .status-dot.mobile-online,
.discord-profile-preview .status-dot.mobile-online{--mobile-presence-cutout:var(--settings-card-bg,var(--panel))}
.member-role-v2-avatar-wrap .status-dot.mobile-online{--mobile-presence-cutout:color-mix(in srgb,var(--rail) 92%,#000)}
.mini-user .status-dot.mobile-online[data-status="online"],
.voice-users .voice-presence-user .status-dot.mobile-online[data-status="online"]{
  width:9px!important;
  height:14px!important;
  right:-2px!important;
  bottom:-3px!important;
  border-width:2px!important;
  border-radius:3px!important;
}
.mini-user .status-dot.mobile-online[data-status="online"]::before,
.voice-users .voice-presence-user .status-dot.mobile-online[data-status="online"]::before{inset:2px 1px 3px}
.mini-user .status-dot.mobile-online[data-status="online"]::after,
.voice-users .voice-presence-user .status-dot.mobile-online[data-status="online"]::after{width:1px;height:1px;bottom:1px}
.member-role-v2-status>i.mobile-online[data-status="online"]{
  position:relative;
  width:8px;
  height:13px;
  border-radius:2px;
  background:var(--green);
}
.member-role-v2-status>i.mobile-online[data-status="online"]::before{
  content:"";
  position:absolute;
  inset:2px 1px 3px;
  border-radius:1px;
  background:color-mix(in srgb,var(--rail) 92%,#000);
}
.member-role-v2-status>i.mobile-online[data-status="online"]::after{
  content:"";
  position:absolute;
  left:50%;bottom:1px;width:1px;height:1px;border-radius:50%;
  background:color-mix(in srgb,var(--rail) 92%,#000);
  transform:translateX(-50%);
}

/* City Estates table layout — larger board, physical-card presentation, responsive desktop surface. */
.dm-game-panel.estate-game-active{background:color-mix(in srgb,var(--panel) 91%,#173b35)}
@media(min-width:701px){
 .main.dm-game-open.estate-game-open{grid-template-columns:minmax(300px,1fr) clamp(560px,58vw,920px)}
}
.estate-game{width:100%;max-width:1180px;margin-inline:auto}
.estate-table{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:14px;margin:6px auto 12px}
.estate-table .estate-board{width:100%;max-width:760px;margin:0 auto;gap:2px;padding:5px;border-width:3px;border-radius:14px;box-shadow:0 18px 42px rgba(0,0,0,.32),inset 0 0 0 1px rgba(255,255,255,.08)}
.estate-table .estate-space{padding:9px 3px 4px;border-radius:3px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease;box-shadow:inset 0 -4px 0 var(--owner)}
.estate-table .estate-space:hover{z-index:3;filter:brightness(1.04);box-shadow:inset 0 -4px 0 var(--owner),0 0 0 2px rgba(255,255,255,.8),0 5px 12px rgba(0,0,0,.22)}
.estate-table .estate-space.selected{z-index:4;box-shadow:inset 0 -4px 0 var(--owner),0 0 0 3px #f1b942,0 7px 16px rgba(0,0,0,.28)}
.estate-table .estate-space>i{height:8px}.estate-table .estate-space>b{font-size:14px}.estate-table .estate-space>span{font-size:8px;line-height:1.08}.estate-table .estate-space>small{font-size:7px;margin-top:2px}.estate-table .estate-space>em{font-size:7px;letter-spacing:-1px}.estate-table .estate-space.corner>span{font-size:8.5px}.estate-table .estate-space u{width:10px;height:10px;border-width:2px;box-shadow:0 2px 4px #0008}.estate-table .estate-space>div{gap:2px;bottom:3px}
.estate-table .estate-board-center{gap:8px;padding:16px;background:radial-gradient(circle at 50% 36%,#eff9e8,#c4e0ca 58%,#80b0a8);box-shadow:inset 0 0 52px rgba(27,84,76,.23)}
.estate-table .estate-board-center>strong{font-size:clamp(22px,3vw,38px);letter-spacing:.13em}.estate-table .estate-board-center>span{font-size:10px}.estate-table .estate-skyline{font-size:34px}
.estate-table .estate-dice{position:relative;gap:10px;margin-top:5px;padding-bottom:17px}.estate-table .estate-dice b{width:46px;height:46px;border-radius:10px;font-size:35px;line-height:1;background:#fff;color:#152b33;box-shadow:0 7px 14px #2447}.estate-table .estate-dice small{position:absolute;left:50%;bottom:0;transform:translateX(-50%);white-space:nowrap;font-size:9px;font-weight:900;color:#24524d}
.estate-card-dock{position:static;display:flex;align-items:flex-start;justify-content:center;width:min(100%,520px);margin-inline:auto;min-width:0}
.estate-card{width:100%;min-height:310px;border:2px solid #1e2c31;border-radius:12px;background:#f7f4e8;color:#17282d;overflow:hidden;box-shadow:0 13px 28px rgba(0,0,0,.26),inset 0 0 0 1px rgba(255,255,255,.7)}
.estate-card header{display:flex;flex-direction:column;align-items:center;text-align:center}.estate-deed-card header{position:relative;padding:26px 12px 13px;border-bottom:2px solid #1e2c31}.estate-deed-card header>span{position:absolute;left:0;right:0;top:0;height:19px;background:var(--set)}.estate-deed-card header small{font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.estate-deed-card header strong{margin-top:4px;font-size:18px;line-height:1.1;text-transform:uppercase}
.estate-card-owner{display:grid;grid-template-columns:10px auto minmax(0,1fr);gap:6px;align-items:center;margin:10px 12px 6px;padding-bottom:8px;border-bottom:1px solid #b8b5aa;font-size:10px}.estate-card-owner i{width:9px;height:9px;border-radius:50%;background:var(--owner)}.estate-card-owner span{color:#5c6260}.estate-card-owner b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}
.estate-card-rents{display:grid;gap:1px;padding:3px 13px}.estate-card-rents span{display:flex;justify-content:space-between;gap:10px;padding:4px 2px;border-bottom:1px dotted #b5b2a8;font-size:10px}.estate-card-rents b{font-weight:700}.estate-card-rents em{font-style:normal;font-weight:900}
.estate-deed-card footer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:10px 10px 7px;padding-top:8px;border-top:2px solid #1e2c31}.estate-deed-card footer span{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:8px;text-transform:uppercase}.estate-deed-card footer b{font-size:11px}.estate-card-level{margin:0 10px 10px;padding:5px;border-radius:5px;background:#d8eadc;text-align:center;font-size:9px;font-weight:900}.estate-deed-card.mortgaged{filter:grayscale(.55)}.estate-deed-card.mortgaged::after{content:"MORTGAGED";display:block;margin:8px 12px 12px;padding:6px;border:2px solid #ad3944;color:#8c2530;font-weight:1000;letter-spacing:.12em;text-align:center;transform:rotate(-3deg)}
.estate-event-card{display:flex;flex-direction:column;justify-content:stretch;min-height:310px}.estate-event-card header{flex-direction:row;justify-content:center;gap:8px;padding:12px;border-bottom:2px solid #1e2c31;color:#fff;background:#3f856e}.estate-event-card.venture header{background:#9a6f2c}.estate-event-card header span{font-size:22px}.estate-event-card header b{font-size:12px;letter-spacing:.12em;text-transform:uppercase}.estate-event-card>div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px 18px;text-align:center}.estate-event-card>div>small{font-weight:1000;letter-spacing:.16em;color:#66706d}.estate-event-card>div>strong{font-size:20px;line-height:1.12}.estate-event-card p{margin:0;font-size:13px;font-weight:700;line-height:1.45}.estate-event-card em{font-size:10px;font-style:normal;color:#66706d}
.estate-space-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center}.estate-space-card header{gap:5px}.estate-space-card header>span{font-size:38px}.estate-space-card header small{font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#69716e}.estate-space-card header strong{font-size:20px}.estate-space-card p{margin:0;font-size:12px;font-weight:700;line-height:1.5}.estate-space-card>b{font-size:25px}
.dm-game-panel.estate-game-active:fullscreen .dm-game-panel-scroll>*,.dm-game-panel.estate-game-active:-webkit-full-screen .dm-game-panel-scroll>*,body.game-popout .dm-game-panel.estate-game-active .dm-game-panel-scroll>*{width:min(100%,1320px)}
.dm-game-panel.estate-game-active:fullscreen .estate-table,.dm-game-panel.estate-game-active:-webkit-full-screen .estate-table,body.game-popout .dm-game-panel.estate-game-active .estate-table{grid-template-columns:minmax(600px,820px) minmax(250px,300px);justify-content:center;gap:20px}
.dm-game-panel.estate-game-active:fullscreen .estate-board,.dm-game-panel.estate-game-active:-webkit-full-screen .estate-board,body.game-popout .dm-game-panel.estate-game-active .estate-board{width:min(100%,820px);max-width:820px}
@media(max-width:1350px) and (min-width:701px){
 .main.dm-game-open.estate-game-open{grid-template-columns:minmax(280px,1fr) clamp(540px,62vw,760px)}
 .estate-table .estate-board{max-width:700px}
 .estate-card{min-height:0}
}

/* v1.6.0.92 Arcade — adaptive games workspace and City Estates readability. */
.dm-game-panel{
 container-type:inline-size;
 container-name:game-panel;
}
.main.dm-game-open{
 grid-template-columns:minmax(300px,1fr) minmax(380px,46%);
}
.main.dm-game-open.estate-game-open{
 grid-template-columns:minmax(300px,1fr) minmax(460px,60%);
}
.dm-game-panel-head{
 min-height:56px;
 height:56px;
 padding-inline:14px 10px;
 gap:10px;
}
.dm-game-panel-head>div:last-child{gap:3px;flex:none}
.dm-game-panel-head strong{font-size:15px}
.dm-game-panel-head small{font-size:12px}
.dm-game-panel-head .icon-btn{
 width:34px;
 height:34px;
 border-radius:8px;
 transition:background .14s ease,color .14s ease,transform .14s ease;
}
.dm-game-panel-head .icon-btn:active{transform:scale(.95)}
.dm-game-panel-scroll{
 padding:clamp(10px,2.2cqw,18px);
 scrollbar-gutter:stable;
}
.dm-game-panel-scroll>.dm-game-library,
.dm-game-panel-scroll>.dm-game,
.dm-game-panel-scroll>.frontiers-game,
.dm-game-panel-scroll>.frontiers-lobby,
.dm-game-panel-scroll>.estate-create,
.dm-game-panel-scroll>.estate-lobby{
 width:min(100%,900px);
 margin-inline:auto;
}
.dm-game-library{
 display:grid;
 grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));
 gap:12px;
 align-items:start;
}
.dm-game-library-intro,.dm-game-library>.dm-game-history{grid-column:1/-1}
.dm-game-library-intro{padding:10px 10px 14px}
.dm-game-library .dm-game-card{height:100%;display:flex;flex-direction:column}
.dm-game-library .dm-game-card>.primary{margin-top:auto}
.dm-game-library .estate-library-card{margin-top:0}
.dm-game-card{padding:16px;border-radius:14px}
.dm-game-card-icon{width:52px;height:52px;border-radius:14px}
.dm-game-status{padding:11px 13px;border-radius:12px}
.dm-game-status strong{font-size:13px}
.dm-game-status small{font-size:11px;line-height:1.3}
.dm-game-status-pill{font-size:10.5px;padding:5px 8px}
.dm-game-controls{gap:9px;padding-block:11px 5px}
.dm-game-controls button{min-height:38px;padding:9px 14px;border-radius:7px}
.dm-chess-board{width:min(100%,620px)}
.frontiers-game{width:min(100%,900px);margin-inline:auto}
.frontiers-map{max-width:820px;margin-inline:auto}

/* When the conversation column itself is narrow, stack the activity above chat
   instead of forcing two unusably thin desktop columns. ResizeObserver adds the
   class from the actual main-column width, so this also works with member lists
   and a resized channel sidebar. */
@media(min-width:701px){
 .main.dm-game-open.game-layout-compact{
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:minmax(300px,58%) minmax(0,1fr) auto!important;
 }
 .main.dm-game-open.game-layout-compact>.dm-game-panel{
  grid-column:1;
  grid-row:1;
  border-left:0;
  border-bottom:1px solid color-mix(in srgb,var(--muted) 24%,transparent);
  box-shadow:0 8px 24px rgba(0,0,0,.14);
 }
 .main.dm-game-open.game-layout-compact>.messages{grid-column:1;grid-row:2}
 .main.dm-game-open.game-layout-compact>.composer-wrap{grid-column:1;grid-row:3}
 .main.dm-game-open.game-layout-compact.estate-game-open{grid-template-columns:minmax(0,1fr)!important}
}

/* City Estates uses the panel itself as the scale reference. */
.estate-game{width:100%;max-width:1240px}
.estate-player-list{gap:8px}
.estate-player{
 grid-template-columns:14px minmax(0,1fr) auto;
 gap:8px;
 padding:8px 10px;
 border-radius:10px;
}
.estate-player>i{width:12px;height:12px;box-shadow:0 0 0 3px color-mix(in srgb,var(--token) 28%,transparent)}
.estate-player strong{font-size:12.5px}
.estate-player span{font-size:10.5px;line-height:1.25}
.estate-player-strip{gap:7px;padding-bottom:2px}
.estate-player-strip .estate-player{flex:0 0 min(184px,48%)}
.estate-table{gap:16px;margin:8px auto 14px}
.estate-table .estate-board{
 width:min(100%,800px);
 max-width:800px;
 gap:2px;
 padding:5px;
 border-width:3px;
}
.estate-table .estate-space{
 padding:clamp(7px,1.15cqw,11px) 4px 5px;
 box-shadow:inset 0 -5px 0 var(--owner);
}
.estate-table .estate-space:hover{box-shadow:inset 0 -5px 0 var(--owner),0 0 0 2px rgba(255,255,255,.8),0 5px 12px rgba(0,0,0,.22)}
.estate-table .estate-space.selected{box-shadow:inset 0 -5px 0 var(--owner),0 0 0 3px #f1b942,0 7px 16px rgba(0,0,0,.28)}
.estate-table .estate-space>i{height:clamp(7px,1cqw,10px)}
.estate-table .estate-space>b{font-size:clamp(12px,1.8cqw,17px)}
.estate-table .estate-space>span{
 font-size:clamp(7px,1.2cqw,11px);
 line-height:1.08;
 font-weight:900;
 text-wrap:balance;
}
.estate-table .estate-space>small{font-size:clamp(6.5px,1cqw,9px);margin-top:2px;font-weight:800}
.estate-table .estate-space>em{font-size:clamp(6px,.9cqw,8px);letter-spacing:-1px}
.estate-table .estate-space.corner>span{font-size:clamp(7.5px,1.25cqw,11.5px)}
.estate-table .estate-space>div{
 left:3px;
 right:3px;
 bottom:3px;
 gap:0;
 align-items:center;
 min-height:clamp(11px,1.8cqw,17px);
}
.estate-table .estate-space u{
 position:relative;
 width:clamp(11px,1.75cqw,16px);
 height:clamp(11px,1.75cqw,16px);
 flex:0 0 auto;
 border:2px solid #fff;
 box-shadow:0 2px 5px #0009,0 0 0 1px rgba(0,0,0,.22);
}
.estate-table .estate-space u+u{margin-left:clamp(-5px,-.5cqw,-2px)}
.estate-table .estate-board-center{gap:9px;padding:clamp(12px,2.3cqw,20px)}
.estate-table .estate-board-center>strong{font-size:clamp(24px,4cqw,42px)}
.estate-table .estate-board-center>span{font-size:clamp(9px,1.35cqw,12px)}
.estate-table .estate-skyline{font-size:clamp(30px,5cqw,42px)}
.estate-table .estate-dice b{width:clamp(42px,6.2cqw,54px);height:clamp(42px,6.2cqw,54px);font-size:clamp(32px,5cqw,41px)}
.estate-table .estate-dice small{font-size:11px}
.estate-card-dock{width:min(100%,620px)}
.estate-card{min-height:330px;border-radius:14px}
.estate-deed-card header{padding:29px 15px 15px}
.estate-deed-card header>span{height:21px}
.estate-deed-card header small{font-size:10.5px}
.estate-deed-card header strong{font-size:21px}
.estate-card-owner{grid-template-columns:12px auto minmax(0,1fr);gap:8px;margin:12px 15px 7px;padding-bottom:10px;font-size:12px}
.estate-card-owner i{width:11px;height:11px}
.estate-card-rents{padding:4px 16px}
.estate-card-rents span{padding:5px 2px;font-size:12px}
.estate-deed-card footer{gap:6px;margin:12px 13px 8px;padding-top:10px}
.estate-deed-card footer span{font-size:9.5px}
.estate-deed-card footer b{font-size:13px}
.estate-card-level{margin:0 13px 13px;padding:7px;font-size:11px}
.estate-event-card{min-height:330px}
.estate-event-card header{padding:14px}
.estate-event-card header span{font-size:25px}
.estate-event-card header b{font-size:13px}
.estate-event-card>div{gap:12px;padding:28px 22px}
.estate-event-card>div>small{font-size:10px}
.estate-event-card>div>strong{font-size:23px}
.estate-event-card p{font-size:14px;line-height:1.5}
.estate-event-card em{font-size:11px}
.estate-space-card{gap:18px;padding:28px}
.estate-space-card header>span{font-size:42px}
.estate-space-card header small{font-size:10px}
.estate-space-card header strong{font-size:23px}
.estate-space-card p{font-size:14px}
.estate-space-card>b{font-size:28px}
.estate-action-box{padding:12px;gap:9px}
.estate-action-box>strong{font-size:13px}
.estate-action-box>small{font-size:11px}
.estate-properties>summary,.estate-trade>summary{font-size:13px}
.estate-properties strong{font-size:12px}
.estate-properties small,.estate-trade label{font-size:10.5px}

@container game-panel (max-width:519px){
 .dm-game-panel-scroll{padding:9px}
 .dm-game-library{grid-template-columns:minmax(0,1fr)}
 .dm-game-card{padding:13px}
 .estate-player-strip .estate-player{flex-basis:min(166px,62%)}
 .estate-table{gap:10px}
 .estate-card{min-height:0}
 .estate-deed-card header strong{font-size:18px}
 .estate-card-rents span{font-size:11px}
}
@container game-panel (min-width:760px){
 .dm-game-panel-scroll{padding:18px 20px}
 .dm-game-panel-scroll>.estate-game{max-width:1120px}
 .estate-player-strip .estate-player{flex-basis:min(205px,32%)}
 .estate-table .estate-board{max-width:820px}
}

.dm-game-panel.estate-game-active:fullscreen .estate-board,
.dm-game-panel.estate-game-active:-webkit-full-screen .estate-board,
body.game-popout .dm-game-panel.estate-game-active .estate-board{width:min(100%,860px);max-width:860px}
.dm-game-panel.estate-game-active:fullscreen .estate-table,
.dm-game-panel.estate-game-active:-webkit-full-screen .estate-table,
body.game-popout .dm-game-panel.estate-game-active .estate-table{
 grid-template-columns:minmax(600px,860px) minmax(290px,340px);
 gap:24px;
}
/* Keep mixed game-library cards content-sized; Group DM invite lists may be much taller. */
.dm-game-library .dm-game-card{height:auto}


/* v1.6.0.93 Arcade — optional computer players for multiplayer games. */
.game-ai-options{
 display:grid;
 grid-template-columns:minmax(0,1fr) auto;
 gap:10px 14px;
 align-items:center;
 margin:12px 0 4px;
 padding:11px 12px;
 border:1px solid color-mix(in srgb,var(--accent) 24%,var(--muted) 18%);
 border-radius:10px;
 background:color-mix(in srgb,var(--accent) 7%,var(--bg));
}
.game-ai-options label{margin:0}
.game-ai-toggle{display:flex;align-items:flex-start;gap:9px;min-width:0;cursor:pointer}
.game-ai-toggle>input{margin-top:3px;accent-color:var(--accent);flex:none}
.game-ai-toggle>span{display:grid;gap:2px;min-width:0}
.game-ai-toggle b{color:var(--strong);font-size:12px;line-height:1.3}
.game-ai-toggle small{margin:0!important;color:var(--muted);font-size:10.5px;line-height:1.35}
.game-ai-target{display:grid;grid-template-columns:auto 66px;align-items:center;gap:7px;color:var(--muted);font-size:10.5px;font-weight:700;white-space:nowrap}
.game-ai-target .field{width:66px;min-width:66px;margin:0!important;padding-block:7px;text-align:center}
.game-ai-badge{
 display:inline-flex!important;
 align-items:center;
 justify-content:center;
 margin:0 0 0 4px!important;
 padding:1px 5px;
 border:1px solid color-mix(in srgb,var(--accent) 52%,transparent);
 border-radius:999px;
 background:color-mix(in srgb,var(--accent) 14%,transparent);
 color:var(--accent)!important;
 font-size:8px!important;
 font-weight:900;
 line-height:1.35!important;
 letter-spacing:.045em;
 text-decoration:none!important;
 vertical-align:1px;
}
.frontiers-turn-order .game-ai-badge{display:inline-flex!important;margin-left:2px!important;font-size:7.5px!important}
.frontiers-player-list .game-ai-badge{display:inline-flex!important;margin-left:4px!important}
@container game-panel (max-width:519px){
 .game-ai-options{grid-template-columns:minmax(0,1fr);gap:9px;padding:10px}
 .game-ai-target{grid-template-columns:minmax(0,1fr) 72px}
 .game-ai-target .field{width:72px}
}

/* Arcade 1.6.0.94 — world Frontiers + Chess AI controls */
.chess-ai-toggle{margin:2px 0 4px;min-height:54px}
.chess-ai-toggle span{min-width:0}.chess-ai-toggle b{display:flex;align-items:center;gap:6px}
.dm-game-player .game-ai-badge{display:inline-flex!important;align-items:center;justify-content:center;margin-left:5px;padding:1px 5px;border-radius:999px;background:color-mix(in srgb,var(--accent) 22%,var(--bg));color:var(--strong);font-size:8px!important;line-height:1.45;font-weight:800;vertical-align:middle}
.frontiers-region-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:5px 7px;margin:2px auto 8px;width:min(100%,1020px)}
.frontiers-region-legend span{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid color-mix(in srgb,var(--region) 45%,transparent);border-radius:999px;background:color-mix(in srgb,var(--region) 10%,var(--bg));font-size:9px;color:var(--muted);white-space:nowrap}
.frontiers-region-legend i{width:7px;height:7px;border-radius:50%;background:var(--region);box-shadow:0 0 0 2px color-mix(in srgb,var(--region) 20%,transparent)}
.frontiers-region-legend b{font-size:9px;color:var(--strong)}.frontiers-region-legend small{font-size:8px;font-weight:800;color:var(--region)}
.frontiers-map.world-map{width:min(100%,1020px);max-width:1020px;aspect-ratio:1.72;margin-inline:auto;border-radius:16px;background:#0b2030;overflow:hidden}
.frontiers-map.world-map::before{content:"";position:absolute;inset:5% 2%;z-index:0;opacity:.22;pointer-events:none;background:radial-gradient(ellipse at 19% 31%,#86a878 0 11%,transparent 12%),radial-gradient(ellipse at 32% 72%,#a08c63 0 9%,transparent 10%),radial-gradient(ellipse at 52% 33%,#869c72 0 9%,transparent 10%),radial-gradient(ellipse at 55% 62%,#a08d64 0 10%,transparent 11%),radial-gradient(ellipse at 77% 36%,#879d72 0 17%,transparent 18%),radial-gradient(ellipse at 90% 79%,#9b8b65 0 7%,transparent 8%);filter:blur(.3px)}
.frontiers-map.world-map svg{z-index:1}.frontiers-map.world-map line{stroke:rgba(206,225,234,.24);stroke-width:.48;stroke-dasharray:1 1.3}
.frontiers-map.world-map .frontiers-territory{z-index:3;width:clamp(22px,2.8vw,30px);height:clamp(22px,2.8vw,30px);border-width:2px;outline:1px solid color-mix(in srgb,var(--region) 68%,transparent);outline-offset:1px}
.frontiers-map.world-map .frontiers-territory b{font-size:clamp(8px,1vw,11px)}
.frontiers-map.world-map .frontiers-territory span{top:calc(100% + 2px);max-width:90px;padding:1px 3px;font-size:clamp(6px,.75vw,8px);line-height:1.1;text-overflow:ellipsis;overflow:hidden}
.frontiers-map.world-map .frontiers-territory:hover span,.frontiers-map.world-map .frontiers-territory.selected span{max-width:150px;overflow:visible;font-size:9px;z-index:8}
.dm-game-panel:fullscreen .frontiers-map.world-map,.dm-game-panel:-webkit-full-screen .frontiers-map.world-map,.game-popout-panel .frontiers-map.world-map{width:min(100%,1280px);max-width:1280px}
.dm-game-panel:fullscreen .frontiers-map.world-map .frontiers-territory,.game-popout-panel .frontiers-map.world-map .frontiers-territory{width:32px;height:32px}

/* v1.6.0.94 — City Estates AI-only lobby layout. */
.estate-create .game-ai-options{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.estate-create .game-ai-target{grid-column:1/-1;justify-self:start}
@container game-panel (max-width:659px){
 .estate-create .game-ai-options{grid-template-columns:minmax(0,1fr)}
 .estate-create .game-ai-target{grid-column:auto;width:100%;justify-self:stretch}
}

/* v1.6.0.96 Arcade — City Estates classic 40-space board presentation. */
.estate-space>.estate-space-copy{
 position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
 width:100%;max-width:100%;min-width:0;color:inherit;text-align:center;line-height:1.05;pointer-events:none;
}
.estate-space>.estate-space-copy>b{font-size:clamp(11px,1.7cqw,16px);line-height:1.05}
.estate-space>.estate-space-copy>span{max-width:100%;font-size:clamp(7px,1.1cqw,10px);font-weight:900;line-height:1.06;overflow-wrap:anywhere;text-wrap:balance}
.estate-space>.estate-space-copy>small{margin-top:2px;font-size:clamp(6.5px,.95cqw,8.5px);font-weight:800;line-height:1}
.estate-space>.estate-space-tokens{
 position:absolute;z-index:5;left:3px;right:3px;bottom:3px;display:flex;align-items:center;justify-content:center;
 width:auto;max-width:none;min-height:13px;gap:0;font-size:initial;line-height:normal;pointer-events:none;
}
.estate-space>.estate-space-tokens u{display:block;flex:0 0 auto}
.estate-space>.estate-buildings{position:absolute;z-index:4;font-style:normal;font-weight:1000;line-height:1;letter-spacing:-2px;pointer-events:none}
.estate-space>.estate-buildings.houses{color:#087f3f;text-shadow:0 1px 0 #fff,0 0 2px #fff}
.estate-space>.estate-buildings.hotel{color:#ce2029;font-size:1.15em;text-shadow:0 1px 0 #fff,0 0 2px #fff}

.estate-table .estate-board.board-40{
 width:min(100%,900px);max-width:900px;aspect-ratio:1;
 grid-template-columns:13% repeat(9,minmax(0,8.222222%)) 13%;
 grid-template-rows:13% repeat(9,minmax(0,8.222222%)) 13%;
 gap:0;padding:0;border:3px solid #171b19;border-radius:3px;background:#171b19;
 box-shadow:0 18px 44px rgba(0,0,0,.34),0 0 0 1px rgba(255,255,255,.08);
}
.estate-board.board-40 .estate-space{
 position:relative;border:1px solid #171b19;border-radius:0;padding:4px;background:#cfe3d1;color:#111c17;
 box-shadow:inset 0 -5px 0 var(--owner);overflow:hidden;isolation:isolate;
}
.estate-board.board-40 .estate-space:hover{
 z-index:6;filter:brightness(1.035);box-shadow:inset 0 -5px 0 var(--owner),0 0 0 3px rgba(255,255,255,.9),0 6px 14px rgba(0,0,0,.28)
}
.estate-board.board-40 .estate-space.selected{
 z-index:7;box-shadow:inset 0 -5px 0 var(--owner),0 0 0 3px #f1b942,0 8px 17px rgba(0,0,0,.3)
}
.estate-board.board-40 .estate-color-band{display:none}
.estate-board.board-40 .type-property>.estate-color-band{display:block;position:absolute;z-index:0;background:var(--set)}
.estate-board.board-40 .side-bottom.type-property>.estate-color-band{left:0;right:0;top:0;height:24%}
.estate-board.board-40 .side-left.type-property>.estate-color-band{top:0;right:0;bottom:0;left:auto;width:24%;height:auto}
.estate-board.board-40 .side-top.type-property>.estate-color-band{left:0;right:0;bottom:0;top:auto;height:24%}
.estate-board.board-40 .side-right.type-property>.estate-color-band{top:0;left:0;bottom:0;right:auto;width:24%;height:auto}
.estate-board.board-40 .side-bottom.type-property>.estate-space-copy{padding-top:22%}
.estate-board.board-40 .side-top.type-property>.estate-space-copy{padding-top:22%}
.estate-board.board-40 .side-left.type-property>.estate-space-copy,
.estate-board.board-40 .side-right.type-property>.estate-space-copy{padding-top:16%}
.estate-board.board-40 .estate-space-copy{height:100%;padding:3px 2px 16px}
.estate-board.board-40 .estate-space-copy>b{font-size:clamp(12px,1.55cqw,18px);margin-bottom:2px}
.estate-board.board-40 .estate-space-copy>span{font-size:clamp(6.8px,1.02cqw,10.5px);line-height:1.02;letter-spacing:-.01em}
.estate-board.board-40 .estate-space-copy>small{font-size:clamp(6.4px,.86cqw,9px)}
.estate-board.board-40 .side-left>.estate-space-copy{transform:rotate(90deg);width:72%;margin:auto}
.estate-board.board-40 .side-top>.estate-space-copy{transform:rotate(180deg)}
.estate-board.board-40 .side-right>.estate-space-copy{transform:rotate(-90deg);width:72%;margin:auto}
.estate-board.board-40 .corner>.estate-space-copy{transform:none!important;width:100%;padding:8px 5px 18px}
.estate-board.board-40 .corner .estate-space-copy>b{font-size:clamp(22px,4cqw,40px);margin-bottom:4px}
.estate-board.board-40 .corner .estate-space-copy>span{font-size:clamp(8px,1.4cqw,13px);line-height:1.08;text-transform:uppercase}
.estate-board.board-40 .type-event .estate-space-copy>b{font-size:clamp(22px,3.4cqw,34px);font-family:Georgia,serif}
.estate-board.board-40 .type-transit .estate-space-copy>b,.estate-board.board-40 .type-utility .estate-space-copy>b{font-size:clamp(17px,2.6cqw,25px)}
.estate-board.board-40 .type-tax .estate-space-copy>b{font-size:clamp(16px,2.2cqw,23px)}
.estate-board.board-40 .space-civic_fund_1 .estate-space-copy>b,.estate-board.board-40 .space-civic_fund_2 .estate-space-copy>b,.estate-board.board-40 .space-civic_fund_3 .estate-space-copy>b{color:#148ab7}
.estate-board.board-40 .space-venture_deck_1 .estate-space-copy>b,.estate-board.board-40 .space-venture_deck_2 .estate-space-copy>b,.estate-board.board-40 .space-venture_deck_3 .estate-space-copy>b{color:#d9751d}
.estate-board.board-40 .space-start .estate-space-copy>b{color:#13934b}
.estate-board.board-40 .space-free_parking .estate-space-copy>b{color:#d3392f}
.estate-board.board-40 .space-detention .estate-space-copy>b{color:#dd7c18}
.estate-board.board-40 .space-go_detention .estate-space-copy>b{color:#1d69ad}
.estate-board.board-40 .space-start{background:#d9ead8}
.estate-board.board-40 .space-detention{background:linear-gradient(135deg,#f2a23d 0 31%,#d8e8d5 31%)}
.estate-board.board-40 .space-free_parking{background:linear-gradient(135deg,#d9ead8 0 57%,#f5a13b 57% 72%,#d9ead8 72%)}
.estate-board.board-40 .space-go_detention{background:linear-gradient(135deg,#d9ead8 0 58%,#2f88c8 58% 73%,#d9ead8 73%)}
.estate-board.board-40 .estate-space-tokens{bottom:4px;min-height:clamp(16px,2cqw,22px)}
.estate-board.board-40 .estate-space-tokens u{
 width:clamp(15px,2.05cqw,21px);height:clamp(15px,2.05cqw,21px);border:2px solid #fff;
 border-radius:50%;background:var(--token);box-shadow:0 2px 6px rgba(0,0,0,.72),0 0 0 1px rgba(0,0,0,.38)
}
.estate-board.board-40 .estate-space-tokens u+u{margin-left:clamp(-8px,-.85cqw,-4px)}
.estate-board.board-40 .estate-buildings{font-size:clamp(9px,1.25cqw,13px)}
.estate-board.board-40 .side-bottom>.estate-buildings{top:2px;left:50%;transform:translateX(-50%)}
.estate-board.board-40 .side-top>.estate-buildings{bottom:2px;left:50%;transform:translateX(-50%) rotate(180deg)}
.estate-board.board-40 .side-left>.estate-buildings{right:2px;top:50%;transform:translateY(-50%) rotate(90deg)}
.estate-board.board-40 .side-right>.estate-buildings{left:2px;top:50%;transform:translateY(-50%) rotate(-90deg)}
.estate-board.board-40 .estate-board-center{
 position:relative;grid-column:2/11;grid-row:2/11;display:block;overflow:hidden;padding:0;
 background:#cfe3d1;color:#17231d;box-shadow:inset 0 0 42px rgba(26,76,50,.12)
}
.estate-board.board-40 .estate-center-title{
 position:absolute;z-index:2;left:50%;top:49%;display:flex;flex-direction:column;align-items:center;justify-content:center;
 min-width:48%;padding:8px 20px;border:3px solid #243c31;background:#f2f0df;color:#193629;
 transform:translate(-50%,-50%) rotate(-35deg);box-shadow:0 5px 0 rgba(22,49,38,.28);text-align:center
}
.estate-board.board-40 .estate-center-title>strong{font-size:clamp(22px,4.4cqw,46px);line-height:1;letter-spacing:.07em;text-shadow:none;transform:none}
.estate-board.board-40 .estate-center-title>span{margin-top:4px;font-size:clamp(7px,1.05cqw,11px);font-weight:900;letter-spacing:.18em}
.estate-board.board-40 .estate-board-deck{
 position:absolute;z-index:1;width:25%;aspect-ratio:1.55;border:2px dashed currentColor;border-radius:5px;
 display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:rgba(255,255,255,.18);
 transform:rotate(-35deg);font-weight:900;text-transform:uppercase;letter-spacing:.08em
}
.estate-board.board-40 .estate-board-deck span{font-family:Georgia,serif;font-size:clamp(24px,4cqw,44px);line-height:1}
.estate-board.board-40 .estate-board-deck b{font-size:clamp(7px,1cqw,10px)}
.estate-board.board-40 .estate-board-deck.civic{left:10%;top:17%;color:#0f83ad;background:rgba(136,211,235,.24)}
.estate-board.board-40 .estate-board-deck.venture{right:10%;bottom:16%;color:#d16e18;background:rgba(244,156,49,.24)}
.estate-board.board-40 .estate-dice{position:absolute;z-index:4;left:50%;bottom:8%;transform:translateX(-50%);margin:0;padding-bottom:17px}
.estate-board.board-40 .estate-dice b{width:clamp(38px,5.2cqw,50px);height:clamp(38px,5.2cqw,50px);font-size:clamp(29px,4.3cqw,39px)}
.estate-board.board-40 .estate-dice small{font-size:10px;color:#193629}
.estate-board.board-40 .estate-space.mortgaged{filter:grayscale(.7);opacity:.76}
.estate-board.board-40 .estate-space.mortgaged::after{right:3px;bottom:3px;font-size:clamp(7px,1cqw,10px);background:#fff8;padding:1px 3px;border-radius:3px}

.estate-card-rents span.hotel{border-top:2px solid #1e2c31;font-weight:900}
.estate-card-level.hotel{background:#f2d4d4;color:#8e2328}

@container game-panel (min-width:900px){
 .estate-table .estate-board.board-40{max-width:940px}
}
.dm-game-panel.estate-game-active:fullscreen .estate-board.board-40,
.dm-game-panel.estate-game-active:-webkit-full-screen .estate-board.board-40,
body.game-popout .dm-game-panel.estate-game-active .estate-board.board-40{width:min(100%,980px);max-width:980px}


/* Arcade 1.6.0.98 — Frontiers visual pass + City Estates readability/liquidation */
.frontiers-game{max-width:1120px}
.frontiers-map.world-map{
 position:relative;width:min(100%,1100px);max-width:1100px;aspect-ratio:1.75;border:1px solid rgba(142,189,210,.32);border-radius:18px;
 background:radial-gradient(circle at 50% 44%,rgba(58,113,139,.23),transparent 42%),linear-gradient(155deg,#13364b,#071822 68%);
 box-shadow:inset 0 0 80px rgba(0,0,0,.56),0 16px 34px rgba(0,0,0,.27);overflow:hidden
}
.frontiers-map.world-map::before{
 inset:3% 1%;opacity:.42;filter:drop-shadow(0 1px 1px rgba(0,0,0,.7));
 background:radial-gradient(ellipse at 18% 30%,#76956e 0 11%,transparent 11.8%),radial-gradient(ellipse at 27% 27%,#78976f 0 7%,transparent 7.8%),radial-gradient(ellipse at 31% 67%,#9b825d 0 9%,transparent 9.8%),radial-gradient(ellipse at 51% 28%,#80966e 0 8%,transparent 8.8%),radial-gradient(ellipse at 55% 57%,#9b805d 0 10%,transparent 10.8%),radial-gradient(ellipse at 76% 31%,#82966d 0 17%,transparent 17.8%),radial-gradient(ellipse at 89% 76%,#9a865e 0 7%,transparent 7.8%)
}
.frontiers-map.world-map::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(rgba(138,188,209,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(138,188,209,.055) 1px,transparent 1px);background-size:10% 10%;mask-image:linear-gradient(to bottom,transparent,black 14%,black 86%,transparent)}
.frontiers-map.world-map svg{z-index:2}.frontiers-ocean-grid path{fill:none;stroke:rgba(143,196,216,.08);stroke-width:.18}.frontiers-routes line{stroke-width:.38;stroke-dasharray:1.15 1.45;transition:stroke .15s ease,stroke-width .15s ease,opacity .15s ease}.frontiers-routes .route-friendly{stroke:rgba(203,228,238,.25)}.frontiers-routes .route-hostile{stroke:rgba(239,183,142,.22)}.frontiers-routes .route-active{stroke:#f3d47a;stroke-width:.75;stroke-dasharray:none;opacity:.9}
.frontiers-map.world-map .frontiers-territory{
 z-index:4;width:clamp(27px,3.2cqw,38px);height:clamp(27px,3.2cqw,38px);border:2px solid color-mix(in srgb,var(--owner) 78%,#fff);outline:2px solid color-mix(in srgb,var(--region) 64%,transparent);outline-offset:2px;
 background:radial-gradient(circle at 35% 28%,color-mix(in srgb,var(--owner) 72%,#fff),color-mix(in srgb,var(--owner) 78%,#132230) 62%,#0a1420);box-shadow:0 4px 10px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.38),inset 0 -4px 7px rgba(0,0,0,.22)
}
.frontiers-map.world-map .frontiers-territory b{display:flex;align-items:center;justify-content:center;gap:1px;font-size:clamp(9px,1.08cqw,13px);text-shadow:0 1px 2px #000}.frontiers-map.world-map .frontiers-territory b i{font-size:.7em;font-style:normal;opacity:.82}.frontiers-map.world-map .frontiers-territory span{top:calc(100% + 4px);max-width:96px;padding:2px 5px;border:1px solid rgba(218,236,242,.14);border-radius:5px;background:rgba(4,13,20,.82);box-shadow:0 2px 6px rgba(0,0,0,.35);font-size:clamp(7px,.8cqw,9.5px);font-weight:800;letter-spacing:.01em}
.frontiers-map.world-map .frontiers-territory:hover,.frontiers-map.world-map .frontiers-territory.selected{z-index:8;transform:translate(-50%,-50%) scale(1.2);outline-color:#f5db7d;box-shadow:0 0 0 4px rgba(245,219,125,.18),0 8px 18px rgba(0,0,0,.62),inset 0 1px 0 rgba(255,255,255,.42)}
.frontiers-map.world-map .frontiers-territory.owned{border-color:#fff;box-shadow:0 0 0 2px color-mix(in srgb,var(--owner) 45%,transparent),0 4px 10px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.38)}
.frontiers-region-legend{gap:7px 9px;margin:4px auto 10px}.frontiers-region-legend span{padding:5px 9px;border-width:1px;background:color-mix(in srgb,var(--region) 15%,var(--panel));box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.frontiers-territory-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;width:min(100%,1100px);margin:9px auto 4px;padding:11px 13px;border:1px solid color-mix(in srgb,var(--owner) 54%,var(--border));border-left:5px solid var(--owner);border-radius:11px;background:linear-gradient(135deg,color-mix(in srgb,var(--region) 11%,var(--panel)),var(--panel));color:var(--text)}
.frontiers-territory-card>div{display:flex;align-items:center;gap:9px;min-width:0}.frontiers-territory-card>div>span{font-size:25px}.frontiers-territory-card strong,.frontiers-territory-card small{display:block}.frontiers-territory-card strong{color:var(--strong);font-size:13px}.frontiers-territory-card small{color:var(--muted);font-size:10px}.frontiers-territory-card>b{align-self:center;color:var(--strong);font-size:13px}.frontiers-territory-card>p{margin:0;color:var(--text);font-size:11px}.frontiers-territory-card>small{grid-column:1/-1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.frontiers-battle{border-width:1px;padding:11px 12px;background:linear-gradient(135deg,color-mix(in srgb,var(--danger) 11%,var(--panel)),var(--panel));box-shadow:inset 4px 0 0 color-mix(in srgb,var(--danger) 70%,transparent)}

/* City Estates: larger, higher-contrast board typography. */
.estate-game{max-width:1380px}.estate-table .estate-board.board-40{width:min(100%,1020px);max-width:1020px;border-width:4px;box-shadow:0 20px 48px rgba(0,0,0,.38),0 0 0 1px rgba(255,255,255,.1)}
.estate-board.board-40 .estate-space{padding:4px 3px;background:#d6e8d6;color:#08140e;box-shadow:none}
.estate-board.board-40 .estate-space:hover{box-shadow:0 0 0 3px rgba(255,255,255,.95),0 7px 16px rgba(0,0,0,.3)}.estate-board.board-40 .estate-space.selected{box-shadow:0 0 0 4px #f1b942,0 9px 20px rgba(0,0,0,.32)}
.estate-board.board-40 .estate-space-copy{padding:4px 3px 20px}.estate-board.board-40 .estate-space-copy>b{font-size:clamp(14px,1.75cqw,21px);filter:drop-shadow(0 1px 0 rgba(255,255,255,.75))}.estate-board.board-40 .estate-space-copy>span{font-size:clamp(8px,1.16cqw,12px);line-height:1.08;font-weight:950;letter-spacing:0;text-shadow:0 1px 0 rgba(255,255,255,.8),1px 0 0 rgba(255,255,255,.45),-1px 0 0 rgba(255,255,255,.45)}.estate-board.board-40 .estate-space-copy>small{font-size:clamp(7.3px,.98cqw,10px);font-weight:900;text-shadow:0 1px 0 rgba(255,255,255,.82)}
.estate-board.board-40 .side-left>.estate-space-copy,.estate-board.board-40 .side-right>.estate-space-copy{width:78%}.estate-board.board-40 .corner .estate-space-copy>span{font-size:clamp(9px,1.55cqw,14px)}
.estate-board.board-40 .estate-color-band{box-shadow:inset 0 0 0 1px rgba(0,0,0,.3)}
/* Ownership stripe follows the outer edge of the physical board, not the local bottom of every property. */
.estate-board.board-40 .estate-space::before{content:"";position:absolute;z-index:10;pointer-events:none;background:var(--owner)}
.estate-board.board-40 .side-bottom::before{left:0;right:0;bottom:0;height:7px}.estate-board.board-40 .side-left::before{left:0;top:0;bottom:0;width:7px}.estate-board.board-40 .side-top::before{left:0;right:0;top:0;height:7px}.estate-board.board-40 .side-right::before{right:0;top:0;bottom:0;width:7px}.estate-board.board-40 .estate-space-tokens{z-index:12}.estate-board.board-40 .side-bottom>.estate-space-tokens{bottom:8px}.estate-board.board-40 .side-left>.estate-space-tokens{left:8px}.estate-board.board-40 .side-top>.estate-space-tokens{top:8px;bottom:auto}.estate-board.board-40 .side-right>.estate-space-tokens{right:8px}
.estate-board.board-40 .estate-space-tokens u{width:clamp(17px,2.2cqw,23px);height:clamp(17px,2.2cqw,23px)}
.estate-debt-box{border-color:color-mix(in srgb,var(--danger) 55%,var(--border));background:color-mix(in srgb,var(--danger) 10%,var(--panel));box-shadow:inset 4px 0 0 var(--danger)}.estate-debt-box>strong{color:var(--danger)}.estate-properties .estate-liquidate:not(:disabled){border-color:color-mix(in srgb,var(--warning,#d6a13d) 50%,var(--border));background:color-mix(in srgb,#d6a13d 9%,var(--panel))}
@container game-panel (min-width:900px){.estate-table .estate-board.board-40{max-width:1060px}}
.dm-game-panel.estate-game-active:fullscreen .estate-board.board-40,.dm-game-panel.estate-game-active:-webkit-full-screen .estate-board.board-40,body.game-popout .dm-game-panel.estate-game-active .estate-board.board-40{width:min(100%,1080px);max-width:1080px}

/* v1.6.0.100 City Estates: optional stop when only AI players remain. */
.estate-stop-ai-game{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--panel-bg,rgba(0,0,0,.08))}.estate-stop-ai-game p{margin:0;min-width:0;color:var(--muted);font-size:13px;line-height:1.4}.estate-stop-ai-game .danger-button{flex:0 0 auto}.estate-game-stopped{opacity:.92}

/* v1.6.0.101 Spotify account connection and Discord-style activity */
.spotify-connection-card,.spotify-admin-settings{position:relative}
.spotify-connection-brand{display:flex;align-items:center;gap:14px;min-width:0}.spotify-connection-brand>div{display:flex;flex-direction:column;gap:3px;min-width:0}.spotify-connection-brand strong{font-size:17px}.spotify-connection-brand small{color:var(--muted);overflow-wrap:anywhere}.spotify-logo-dot,.spotify-mark{color:#1ed760}.spotify-logo-dot{font-size:34px;line-height:1}.spotify-connection-actions{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}
.spotify-member-activity{display:flex;align-items:center;gap:4px;min-width:0;max-width:100%;color:#b5bac1}.spotify-member-activity i{color:#1ed760;font-style:normal;font-size:10px;flex:0 0 auto}.spotify-member-activity span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spotify-member-activity b{font-weight:400;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spotify-profile-activity{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;padding:12px;margin:10px 0;border-radius:8px;background:rgba(30,215,96,.10);border:1px solid rgba(30,215,96,.24)}.spotify-profile-activity img{width:64px;height:64px;object-fit:cover;border-radius:5px}.spotify-profile-activity>div{display:flex;flex-direction:column;min-width:0;gap:2px}.spotify-profile-activity strong{font-size:12px;color:#1ed760}.spotify-profile-activity b,.spotify-profile-activity span,.spotify-profile-activity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spotify-profile-activity b{font-size:14px}.spotify-profile-activity span,.spotify-profile-activity small{font-size:12px;color:var(--muted)}.spotify-profile-activity a{font-size:12px;margin-top:4px;color:#1ed760;text-decoration:none}.spotify-profile-activity a:hover{text-decoration:underline}

/* Music activity rotation. Custom Status is never a Spotify/Spotify-Like activity slot. */
.activity-status-rotator{min-width:0;max-width:100%}
.activity-status-rotator-compact{display:inline-grid;grid-template-columns:minmax(0,1fr);align-items:center;width:100%;vertical-align:middle}
.activity-status-rotator-profile{display:grid;grid-template-columns:minmax(0,1fr);width:100%}
.activity-status-slot{grid-area:1/1;min-width:0;max-width:100%;opacity:1;visibility:visible;pointer-events:auto}
.activity-status-rotator-compact>.activity-status-slot{display:flex;align-items:center;min-width:0}
.activity-status-rotator-profile>.activity-status-slot{align-self:start}
/* Defensive compatibility for DOM left by pre-1.7.1.56 tabs: never reveal the old Custom Status slot. */
[data-status-rotator="passive"] .activity-status-custom,
.profile-activity-host .custom-status-text,
.spotify-profile-activity .custom-status-text,
.spotify-member-activity .custom-status-text{display:none!important}
[data-status-rotator="passive"] .activity-status-spotify{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
.spotify-member-activity .spotify-note{font-size:1em;line-height:1;flex:0 0 auto}
.spotify-profile-activity .spotify-note{font-size:1.05em;line-height:1;margin-right:3px}

/* Spotify Listen Along */
.spotify-profile-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}.spotify-profile-actions a{margin-top:0}.spotify-listen-along-button{border:0;border-radius:5px;background:#1ed760;color:#081b10;font:600 12px/1.2 inherit;padding:6px 10px;cursor:pointer}.spotify-listen-along-button:hover{filter:brightness(1.06)}.spotify-listen-along-button:disabled{opacity:.6;cursor:wait}.spotify-listen-along-button.active{background:rgba(30,215,96,.16);color:#1ed760;outline:1px solid rgba(30,215,96,.45)}
/* v1.6.0.143 Arcade — Listen Along belongs to the sidebar footer stack instead of overlaying the composer. */
.sidebar-listen-along-slot{flex:none;min-width:0;margin:0 6px 4px;display:grid;gap:4px}
.sidebar-listen-along-slot:empty{display:none}
.sidebar-listen-along-slot .spotify-listen-along-banner,
.sidebar-listen-along-slot .spotify-listen-along-host-banner{
 position:static;
 inset:auto;
 z-index:auto;
 width:100%;
 max-width:none;
 min-width:0;
 margin:0;
 padding:7px 8px;
 display:grid;
 align-items:center;
 gap:7px;
 border-radius:10px;
 background:var(--userbar-bg,color-mix(in srgb,var(--input) 82%,var(--panel)));
 border:1px solid color-mix(in srgb,#1ed760 36%,var(--muted) 12%);
 box-shadow:none;
 color:var(--text,#f2f3f5);
 overflow:hidden;
}
.sidebar-listen-along-slot .spotify-listen-along-banner{grid-template-columns:18px minmax(0,1fr) auto}
.sidebar-listen-along-slot .spotify-listen-along-host-banner{grid-template-columns:18px minmax(0,1fr)}
.spotify-listen-along-icon,.spotify-listen-along-host-icon{width:18px;min-width:18px;font-size:17px;line-height:1;text-align:center}
.spotify-listen-along-banner>div,.spotify-listen-along-host-banner>div{display:flex;flex-direction:column;justify-content:center;min-width:0;gap:1px}
.spotify-listen-along-banner strong,.spotify-listen-along-host-banner strong{font-size:11px;line-height:14px;color:#1ed760;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spotify-listen-along-banner span:not(.spotify-listen-along-icon),.spotify-listen-along-host-banner span:not(.spotify-listen-along-host-icon),.spotify-listen-along-host-banner small{font-size:11px;line-height:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted,#b5bac1)}
.spotify-listen-along-stop{min-width:42px;min-height:28px;border:0;border-radius:6px;padding:5px 7px;background:var(--button-secondary,var(--hover,#4e5058));color:inherit;font-size:11px;line-height:1;cursor:pointer}
.spotify-listen-along-stop:hover,.spotify-listen-along-stop:focus-visible{background:color-mix(in srgb,var(--hover) 72%,var(--strong) 10%);outline:none}
:root[data-theme="light"] .sidebar-listen-along-slot .spotify-listen-along-banner,
:root[data-theme="light"] .sidebar-listen-along-slot .spotify-listen-along-host-banner{border-color:color-mix(in srgb,#1ed760 42%,#c7c9cd)}
:root[data-theme^="liquid-glass"] .sidebar-listen-along-slot .spotify-listen-along-banner,
:root[data-theme^="liquid-glass"] .sidebar-listen-along-slot .spotify-listen-along-host-banner{background-color:color-mix(in srgb,var(--top) 86%,transparent)!important}

/* v1.6.0.110 — Spotify Connections action alignment */
.spotify-connection-card{align-items:center}
.spotify-connection-brand{flex:1 1 auto}
.spotify-connection-actions{
  margin-top:0;
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.spotify-connection-actions button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  margin:0;
  padding:0 14px!important;
  line-height:1.2;
  white-space:nowrap;
}
@media(max-width:620px){
  .spotify-connection-card{flex-direction:column;align-items:stretch;gap:14px}
  .spotify-connection-actions{width:100%;justify-content:flex-end}
}
@media(max-width:430px){
  .spotify-connection-actions button{flex:1 1 auto}
}


/* v1.6.0.112 — Listen Along host visibility */
.spotify-profile-listeners{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:12px;font-weight:600;color:#1ed760}

/* v1.6.0.115 Arcade — Frontiers team mode. */
.frontiers-team-options{
 display:grid;
 grid-template-columns:minmax(0,1fr) auto;
 gap:10px 14px;
 align-items:center;
 margin:10px 0 4px;
 padding:11px 12px;
 border:1px solid color-mix(in srgb,var(--green) 28%,var(--muted) 18%);
 border-radius:10px;
 background:color-mix(in srgb,var(--green) 6%,var(--bg));
}
.frontiers-team-options label{margin:0}
.frontiers-team-mode-banner{display:flex;align-items:center;gap:7px;width:min(100%,1120px);margin:0 auto 8px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--green) 28%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--green) 8%,var(--panel));color:var(--strong)}
.frontiers-team-mode-banner>span{font-size:15px}.frontiers-team-mode-banner>strong{font-size:11px}.frontiers-team-mode-banner>small{margin-left:auto;color:var(--muted);font-size:9px;font-weight:800}
.frontiers-team-badge{display:inline-flex!important;align-items:center;justify-content:center;margin-left:4px;padding:1px 5px;border-radius:999px;font-size:7.5px!important;font-weight:900!important;line-height:1.35!important;text-decoration:none!important;vertical-align:1px;border:1px solid color-mix(in srgb,var(--team-color) 55%,transparent);background:color-mix(in srgb,var(--team-color) 14%,var(--bg));color:color-mix(in srgb,var(--team-color) 72%,var(--strong))!important}
.frontiers-team-badge[data-team="1"]{--team-color:#5b8cff}.frontiers-team-badge[data-team="2"]{--team-color:#ed6572}.frontiers-team-badge[data-team="3"]{--team-color:#62c98c}
.frontiers-turn-order .frontiers-team-badge{font-size:7px!important;margin-left:2px;padding-inline:4px}
.frontiers-player-list .frontiers-team-badge{font-size:8px!important}
.frontiers-territory-card p b{font-size:10px;color:var(--muted)}
@container game-panel (max-width:519px){
 .frontiers-team-options{grid-template-columns:minmax(0,1fr);gap:9px;padding:10px}
 .frontiers-team-options .game-ai-target{grid-template-columns:minmax(0,1fr) 90px}
 .frontiers-team-options .game-ai-target .field{width:90px}
}

/* v1.6.0.120 Arcade — built-in Ollama-powered application AI. */
.server-btn.seek-ai[hidden]{display:none!important}
.server-btn.seek-ai{position:relative}
.server-btn.seek-ai::after{content:"";position:absolute;inset:8px;border-radius:12px;border:1px solid color-mix(in srgb,var(--accent) 34%,transparent);pointer-events:none;opacity:.75}
.server-btn.seek-ai.active::after{border-color:color-mix(in srgb,var(--accent) 72%,transparent);box-shadow:0 0 18px color-mix(in srgb,var(--accent) 22%,transparent)}
.seek-ai-main{overflow:hidden!important;padding:0!important;background:var(--bg)}
.seek-ai-surface{height:100%;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;position:relative}
.seek-ai-thread{min-height:0;overflow:auto;padding:26px clamp(18px,5vw,72px) 22px;scrollbar-gutter:stable}
.seek-ai-message{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;width:min(100%,860px);margin:0 auto 22px;align-items:start}
.seek-ai-message-avatar{width:40px;height:40px;display:grid;place-items:center}
.seek-ai-message-avatar .avatar{width:40px;height:40px;border-radius:50%}
.seek-ai-avatar-mark,.seek-ai-empty-icon{display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--accent) 17%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));color:var(--accent)}
.seek-ai-avatar-mark{width:40px;height:40px}.seek-ai-avatar-mark .app-icon{width:21px;height:21px}

/* Seek AI uses the same safe Discord-style Markdown parser as messages, but needs its own visual scope. */
.seek-ai-message-content .markdown-heading{display:block;margin:.72em 0 .28em;color:var(--strong);font-weight:800;line-height:1.25}
.seek-ai-message-content .markdown-heading.level-1{font-size:1.42em}.seek-ai-message-content .markdown-heading.level-2{font-size:1.24em}.seek-ai-message-content .markdown-heading.level-3{font-size:1.08em}
.seek-ai-message-content .markdown-blockquote{display:block;margin:6px 0;padding:5px 0 5px 10px;border-left:4px solid color-mix(in srgb,var(--muted) 65%,transparent);color:var(--text)}
.seek-ai-message-content .markdown-list-item{display:flex;gap:8px;padding:2px 0 2px 8px;min-width:0}.seek-ai-message-content .markdown-list-item>span:first-child{flex:0 0 24px;text-align:right;color:var(--muted)}
.seek-ai-message-content .markdown-inline-code{padding:1px 4px;border-radius:4px;background:color-mix(in srgb,var(--rail) 88%,transparent);font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--strong)}
.seek-ai-message-content .markdown-code-block{position:relative;display:block;max-width:100%;margin:8px 0;padding:12px;border:1px solid color-mix(in srgb,var(--muted) 24%,transparent);border-radius:7px;background:var(--rail);overflow:auto;white-space:pre}
.seek-ai-message-content .markdown-code-block code{font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--text)}
.seek-ai-message-content .markdown-code-block{padding-top:34px}.seek-ai-message-content .markdown-code-language{position:absolute;top:10px;left:12px;margin:0!important}.seek-ai-code-copy{position:absolute;top:6px;right:6px;width:28px;height:28px;padding:0!important;display:grid;place-items:center;background:color-mix(in srgb,var(--panel) 82%,transparent)!important}.seek-ai-code-copy .app-icon{width:14px;height:14px}
.seek-ai-message-content .markdown-code-language{display:block;margin:-4px 0 8px;color:var(--muted);font:700 10px/1.2 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-transform:uppercase;letter-spacing:.04em}
.seek-ai-message-content .markdown-paragraph{margin:.38em 0 .72em;line-height:1.62}.seek-ai-message-content .markdown-paragraph:first-child{margin-top:0}.seek-ai-message-content .markdown-paragraph:last-child{margin-bottom:0}
.seek-ai-message-content h2.markdown-heading,.seek-ai-message-content h3.markdown-heading,.seek-ai-message-content h4.markdown-heading{display:block;margin:1.05em 0 .38em;padding:0}.seek-ai-message-content h2.markdown-heading:first-child,.seek-ai-message-content h3.markdown-heading:first-child{margin-top:0}
.seek-ai-message-content .markdown-list{margin:.38em 0 .82em;padding-left:1.65em}.seek-ai-message-content .markdown-list .markdown-list-item{display:list-item;padding:2px 0;line-height:1.55}.seek-ai-message-content .markdown-list-ul{list-style:disc}.seek-ai-message-content .markdown-list-ol{list-style:decimal}
.seek-ai-message-content .markdown-task-item{list-style:none;margin-left:-1.35em;display:flex!important;align-items:flex-start;gap:8px}.seek-ai-message-content .markdown-task-check{flex:0 0 18px!important;width:18px;text-align:center!important;color:var(--muted);font-weight:800}.seek-ai-message-content .markdown-task-check.checked{color:var(--green)}
.seek-ai-message-content blockquote.markdown-blockquote{display:block;margin:.6em 0 .85em;padding:7px 10px 7px 12px;border-left:4px solid color-mix(in srgb,var(--accent) 55%,var(--muted));border-radius:0 6px 6px 0;background:color-mix(in srgb,var(--panel) 70%,transparent)}
.seek-ai-message-content .markdown-rule{height:1px;border:0;background:color-mix(in srgb,var(--border) 88%,transparent);margin:1em 0}
.seek-ai-message-content .markdown-table-wrap{max-width:100%;overflow:auto;margin:.65em 0 1em;border:1px solid var(--border);border-radius:8px}.seek-ai-message-content .markdown-table{width:100%;min-width:420px;border-collapse:collapse;background:color-mix(in srgb,var(--panel) 82%,transparent);font-size:13px}.seek-ai-message-content .markdown-table th,.seek-ai-message-content .markdown-table td{padding:8px 10px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-align:left;vertical-align:top;line-height:1.45}.seek-ai-message-content .markdown-table th{position:sticky;top:0;background:var(--rail);color:var(--strong);font-weight:750}.seek-ai-message-content .markdown-table th:last-child,.seek-ai-message-content .markdown-table td:last-child{border-right:0}.seek-ai-message-content .markdown-table tbody tr:last-child td{border-bottom:0}
.seek-ai-message-content a{color:var(--link,#00a8fc);text-decoration:none}.seek-ai-message-content a:hover{text-decoration:underline}
.seek-ai-message-body{min-width:0;padding-top:2px}.seek-ai-message-body>strong{display:block;margin-bottom:5px;font-size:14px}.seek-ai-message-content{font-size:14px;line-height:1.55;overflow-wrap:anywhere}.seek-ai-message-content p:first-child{margin-top:0}.seek-ai-message-content p:last-child{margin-bottom:0}.seek-ai-message-content pre{max-width:100%;overflow:auto}
.seek-ai-empty{width:min(100%,760px);margin:clamp(40px,10vh,110px) auto 0;text-align:center}.seek-ai-empty-icon{width:64px;height:64px;margin:0 auto 16px}.seek-ai-empty-icon .app-icon{width:31px;height:31px}.seek-ai-empty h2{margin:0 0 8px;font-size:26px}.seek-ai-empty p{margin:0 auto 22px;max-width:590px;color:var(--muted);line-height:1.5}
.seek-ai-suggestions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;text-align:left}.seek-ai-suggestion{min-height:52px;white-space:normal;text-align:left;line-height:1.35;padding:10px 12px}
.seek-ai-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;width:min(calc(100% - 36px),860px);margin:0 auto 18px;padding:8px 8px 8px 14px;border:1px solid var(--border);border-radius:14px;background:var(--panel);box-shadow:0 8px 28px rgba(0,0,0,.12)}
.seek-ai-composer:focus-within{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}.seek-ai-input{min-height:28px;max-height:180px;resize:none!important;border:0!important;background:transparent!important;box-shadow:none!important;padding:8px 4px!important;line-height:1.45}.seek-ai-input:focus{outline:0!important}.seek-ai-send{width:42px;height:42px;padding:0!important;display:grid;place-items:center;border-radius:10px}.seek-ai-send .app-icon{width:19px;height:19px}
.seek-ai-unavailable{width:min(calc(100% - 36px),860px);margin:0 auto 10px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--panel);color:var(--muted);font-size:13px}.seek-ai-unavailable .secondary{margin-left:8px}
.seek-ai-thinking-dots{display:flex;align-items:center;gap:4px;height:22px}.seek-ai-thinking-dots i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:seek-ai-dot 1.25s ease-in-out infinite}.seek-ai-thinking-dots i:nth-child(2){animation-delay:.15s}.seek-ai-thinking-dots i:nth-child(3){animation-delay:.3s}@keyframes seek-ai-dot{0%,70%,100%{transform:translateY(0);opacity:.45}35%{transform:translateY(-4px);opacity:1}}
.seek-ai-sidebar-intro{display:flex;align-items:center;gap:10px;padding:12px 10px 14px}.seek-ai-sidebar-intro>span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--accent) 14%,var(--panel));color:var(--accent)}.seek-ai-sidebar-intro>span .app-icon{width:18px;height:18px}.seek-ai-sidebar-intro>div{display:flex;min-width:0;flex-direction:column;gap:2px}.seek-ai-sidebar-intro strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seek-ai-sidebar-intro small{color:var(--muted);font-size:11px}
.seek-ai-admin-settings textarea{resize:vertical;min-height:190px}.seek-ai-admin-model-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.seek-ai-admin-test-status{min-height:20px;font-size:12px;color:var(--muted)}.seek-ai-admin-test-status.success{color:var(--green)}.seek-ai-admin-test-status.error{color:var(--danger)}.seek-ai-admin-test-status.testing{font-style:italic}
@media(max-width:700px){.seek-ai-thread{padding:18px 14px 16px}.seek-ai-message{grid-template-columns:34px minmax(0,1fr);gap:9px;margin-bottom:18px}.seek-ai-message-avatar,.seek-ai-message-avatar .avatar,.seek-ai-avatar-mark{width:34px;height:34px}.seek-ai-avatar-mark .app-icon{width:18px;height:18px}.seek-ai-empty{margin-top:36px}.seek-ai-suggestions{grid-template-columns:1fr}.seek-ai-composer{width:calc(100% - 20px);margin-bottom:calc(var(--layout-mobile-nav,68px) + 10px)}.seek-ai-admin-model-row{grid-template-columns:1fr}.seek-ai-admin-model-row .secondary{width:100%}}

/* Application AI / Ollama server-side connectivity diagnostics. */
.seek-ai-admin-test-status{display:block;margin-top:4px}
.seek-ai-diagnostic-summary{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--background-secondary) 88%,transparent)}
.seek-ai-diagnostic-summary strong{font-size:13px;color:var(--text-normal)}
.seek-ai-diagnostic-summary small{font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.seek-ai-diagnostic-checks{display:grid;gap:6px;margin-top:8px}
.seek-ai-diagnostic-check{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;align-items:start;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:var(--background-secondary)}
.seek-ai-diagnostic-check>div{display:flex;min-width:0;flex-direction:column;gap:2px}
.seek-ai-diagnostic-check strong{font-size:12px;color:var(--text-normal)}
.seek-ai-diagnostic-check small{font-size:11px;color:var(--muted);overflow-wrap:anywhere;word-break:break-word}
.seek-ai-diagnostic-icon{display:grid;width:20px;height:20px;place-items:center;border-radius:50%;font-size:12px;font-weight:800;line-height:1;background:var(--background-tertiary);color:var(--muted)}
.seek-ai-diagnostic-check.ok .seek-ai-diagnostic-icon{color:var(--green)}
.seek-ai-diagnostic-check.failed .seek-ai-diagnostic-icon{color:var(--danger)}
.seek-ai-diagnostic-models{display:flex;flex-direction:column;gap:3px;margin-top:8px;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:var(--background-secondary)}
.seek-ai-diagnostic-models strong{font-size:12px;color:var(--text-normal)}
.seek-ai-diagnostic-models span{font-size:11px;color:var(--muted);overflow-wrap:anywhere}


/* v1.6.0.135 — Direct Messages remain user rows while matching member-list activity geometry. */
.dm-user-section{
  margin:0 0 10px;
}
.dm-user-section>.dm-user-section-title{
  margin-top:15px;
  margin-bottom:7px;
}
.dm-user-list{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.dm-row.dm-user-row{
  min-height:42px;
  height:auto;
  padding:5px 8px;
  gap:10px;
  border-radius:4px;
  text-transform:none;
}
.dm-row.dm-user-row .avatar{
  width:32px;
  height:32px;
  min-width:32px;
}
.dm-row.dm-user-row .dm-user-identity{
  min-width:0;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.dm-row.dm-user-row .dm-user-identity strong,
.dm-row.dm-user-row .dm-user-identity small{
  display:block;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-transform:none;
}
.dm-row.dm-user-row .dm-user-identity strong{
  color:var(--text);
  font-size:14px;
  line-height:18px;
}
.dm-row.dm-user-row .dm-user-status{
  min-height:0;
  margin-top:1px;
  font-size:11px;
  line-height:15px;
  color:var(--muted);
}
.dm-row.dm-user-row>.unread-badge{
  margin-left:auto;
  flex:none;
}
.dm-row.dm-user-row.offline{
  opacity:.45;
}
.dm-row.dm-user-row.offline.active,
.dm-row.dm-user-row.offline:hover{
  opacity:1;
}
@media (min-width:1001px){
  .sidebar-scroll .dm-row.dm-user-row{
    min-height:var(--app-member-row-height);
    height:var(--app-member-row-height);
    padding:5px 8px;
  }
  .sidebar-scroll .dm-row.dm-user-row .avatar{
    width:var(--app-avatar-size);
    height:var(--app-avatar-size);
  }
}
.dm-row.dm-user-row .dm-user-status>.activity-status-rotator,
.dm-row.dm-user-row .dm-user-status>.custom-status-text,
.dm-row.dm-user-row .dm-user-status>.spotify-member-activity{
  width:100%;
  max-width:100%;
  min-width:0;
}
.dm-row.dm-user-row .dm-user-status .activity-status-slot,
.dm-row.dm-user-row .dm-user-status .spotify-member-activity{
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.dm-row.dm-user-row .dm-user-status .spotify-member-activity{
  color:var(--muted);
}


/* v1.6.0.141 Arcade — responsive game workspace hardening.
   Keep game content bounded by the activity panel itself, not by the viewport. */
.dm-game-panel,.dm-game-panel *{box-sizing:border-box}
.dm-game-panel-scroll{overflow-x:hidden}
.dm-game-panel-scroll>*{min-width:0;max-width:100%}
.dm-game-panel-head>div:first-child{overflow:hidden}
.dm-game-panel-head>div:last-child{flex-wrap:nowrap}
.dm-game-card>.game-ai-options,.dm-game-card>.frontiers-team-options{display:grid}
.frontiers-invite-list{min-width:0;max-width:100%}
.frontiers-invite-list label{min-width:0;max-width:100%}
.frontiers-invite-list label>small{flex:none;white-space:nowrap}
.dm-game-card>div>div,.dm-game-status>div>div,.frontiers-invite-list label>span{min-width:0}
.dm-game-card small,.estate-rule-note,.frontiers-lobby-note,.frontiers-waiting{overflow-wrap:anywhere}
.frontiers-invite-list label>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dm-game-controls>*{min-width:0}
.dm-game-controls button{max-width:100%;white-space:normal}
.frontiers-action-box>*{min-width:0}
.frontiers-action-box .field{max-width:100%}
.frontiers-team-options .game-ai-toggle{grid-row:1 / span 2}
.frontiers-team-options .game-ai-target{grid-template-columns:auto minmax(130px,160px)}
.frontiers-team-options .game-ai-target .field{width:100%;min-width:0}
.frontiers-team-mode-banner{flex-wrap:wrap}
.frontiers-team-mode-banner>small{min-width:0;overflow-wrap:anywhere}
.estate-action-box button{max-width:100%;white-space:normal}
.estate-trade-offer p{overflow-wrap:anywhere}

/* Use the ResizeObserver panel classes that were already emitted by the game
   surface runtime. These rules do not change gameplay or conversation state. */
.dm-game-panel.game-panel-narrow .dm-game-panel-head{padding-inline:9px 7px;gap:6px}
.dm-game-panel.game-panel-narrow .dm-game-panel-head small{display:none}
.dm-game-panel.game-panel-narrow .dm-game-panel-head>div:first-child>span{font-size:21px}
.dm-game-panel.game-panel-narrow .dm-game-panel-head .icon-btn{width:30px;height:30px}
.dm-game-panel.game-panel-narrow .dm-game-library{grid-template-columns:minmax(0,1fr)}
.dm-game-panel.game-panel-narrow .game-ai-options,
.dm-game-panel.game-panel-narrow .frontiers-team-options{grid-template-columns:minmax(0,1fr);gap:9px;padding:10px}
.dm-game-panel.game-panel-narrow .frontiers-team-options .game-ai-toggle{grid-row:auto}
.dm-game-panel.game-panel-narrow .game-ai-target,
.dm-game-panel.game-panel-narrow .frontiers-team-options .game-ai-target{grid-template-columns:minmax(0,1fr) minmax(96px,130px);white-space:normal}
.dm-game-panel.game-panel-narrow .game-ai-target .field,
.dm-game-panel.game-panel-narrow .frontiers-team-options .game-ai-target .field{width:100%;min-width:0}
.dm-game-panel.game-panel-narrow .dm-game-status{align-items:flex-start;flex-wrap:wrap}
.dm-game-panel.game-panel-narrow .dm-game-status>div{flex:1 1 220px}
.dm-game-panel.game-panel-narrow .dm-game-status-pill{margin-left:auto}
.dm-game-panel.game-panel-narrow .frontiers-team-mode-banner>small{flex:1 0 100%;margin-left:22px}
.dm-game-panel.game-panel-narrow .frontiers-territory-card{grid-template-columns:minmax(0,1fr)}
.dm-game-panel.game-panel-narrow .frontiers-territory-card>b{justify-self:start}
.dm-game-panel.game-panel-narrow .frontiers-territory-card>small{white-space:normal}
.dm-game-panel.game-panel-narrow .estate-player-list:not(.estate-player-strip){grid-template-columns:minmax(0,1fr)}
.dm-game-panel.game-panel-narrow .estate-stop-ai-game{align-items:stretch;flex-direction:column}
.dm-game-panel.game-panel-narrow .estate-stop-ai-game .danger-button{width:100%}

@container game-panel (max-width:620px){
 .estate-trade-grid{grid-template-columns:minmax(0,1fr)}
 .estate-card-dock{width:100%}
 .estate-card{min-height:0}
}
@container game-panel (max-width:460px){
 .dm-game-panel-scroll{padding:8px}
 .dm-game-card{padding:12px}
 .dm-game-card>div{align-items:flex-start}
 .dm-game-card-icon{width:46px;height:46px;flex:0 0 46px;font-size:27px}
 .frontiers-map.world-map{aspect-ratio:1.32;min-height:0}
 .frontiers-map.world-map .frontiers-territory{width:clamp(21px,6.2cqw,26px);height:clamp(21px,6.2cqw,26px)}
 .frontiers-action-box{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .frontiers-action-box>label,.frontiers-action-box>.field{grid-column:1/-1}
 .frontiers-battle{grid-template-columns:minmax(0,1fr)}
 .frontiers-battle>*{grid-column:1!important}
 .frontiers-battle>div{flex-wrap:wrap}
 .estate-action-box{align-items:stretch}
 .estate-action-box>strong,.estate-action-box>small{flex:1 0 100%;text-align:center}
 .estate-action-box button{flex:1 1 135px}
 .estate-properties article{grid-template-columns:6px minmax(0,1fr) repeat(3,minmax(0,auto));align-items:center}
 .estate-properties article>i{grid-row:1/3}
 .estate-properties article>div{grid-column:2/-1}
 .estate-properties article>button:first-of-type{grid-column:2}
 .estate-properties button{width:100%;min-width:0}
}
@container game-panel (max-width:350px){
 .dm-game-panel-head{min-height:48px;height:48px}
 .dm-game-panel-head>div:first-child>span{display:none}
 .dm-game-panel-head strong{font-size:13px}
 .dm-game-panel-head .icon-btn{width:28px!important;height:28px!important}
 .dm-game-panel-head>div:last-child{gap:1px}
 .dm-game-status-pill{max-width:100%;overflow:hidden;text-overflow:ellipsis}
 .frontiers-action-box{grid-template-columns:minmax(0,1fr)}
 .frontiers-action-box>*{grid-column:1!important}
 .dm-game-controls{display:grid;grid-template-columns:minmax(0,1fr)}
 .dm-game-controls button{width:100%}
}

/* Fullscreen/popout remains two-column only when there is genuinely room for
   the City Estates board and its card dock side-by-side. */
@media(max-width:980px){
 .dm-game-panel.estate-game-active:fullscreen .estate-table,
 .dm-game-panel.estate-game-active:-webkit-full-screen .estate-table,
 body.game-popout .dm-game-panel.estate-game-active .estate-table{grid-template-columns:minmax(0,1fr)!important;gap:12px}
 .dm-game-panel.estate-game-active:fullscreen .estate-card-dock,
 .dm-game-panel.estate-game-active:-webkit-full-screen .estate-card-dock,
 body.game-popout .dm-game-panel.estate-game-active .estate-card-dock{width:min(100%,620px)}
}

/* v1.6.0.142 Arcade — keep side-panel game content vertically composed.
   Multi-column game layouts are reserved for genuinely wide game surfaces. */
@container game-panel (max-width:899px){
 .dm-game-library{grid-template-columns:minmax(0,1fr)}
 .dm-game-library .dm-game-card{width:100%;min-width:0;max-width:100%}

 .game-ai-options,
 .frontiers-team-options{grid-template-columns:minmax(0,1fr);align-items:stretch}
 .game-ai-options .game-ai-toggle,
 .frontiers-team-options .game-ai-toggle{width:100%}
 .game-ai-target,
 .frontiers-team-options .game-ai-target{
  grid-template-columns:minmax(0,1fr);
  align-items:stretch;
  gap:5px;
  width:100%;
  white-space:normal;
 }
 .game-ai-target .field,
 .frontiers-team-options .game-ai-target .field{
  width:100%;
  min-width:0;
  max-width:100%;
  text-align:left;
 }

 .frontiers-action-box{grid-template-columns:minmax(0,1fr);align-items:stretch}
 .frontiers-action-box>*{grid-column:1!important;min-width:0;max-width:100%}
 .frontiers-action-box>button,
 .frontiers-action-box>.field,
 .frontiers-action-box>label>.field{width:100%}
 .frontiers-battle{grid-template-columns:minmax(0,1fr)}
 .frontiers-battle>*{grid-column:1!important;min-width:0}
 .frontiers-battle>div{flex-wrap:wrap}

 .estate-player-list:not(.estate-player-strip){grid-template-columns:minmax(0,1fr)}
 .estate-trade-grid{grid-template-columns:minmax(0,1fr)}
 .estate-action-box{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:stretch;
  justify-content:stretch;
 }
 .estate-action-box>*{min-width:0;max-width:100%}
 .estate-action-box>strong,
 .estate-action-box>small{width:100%;text-align:left}
 .estate-action-box button{width:100%;min-width:0}

 .estate-properties article{
  grid-template-columns:6px minmax(0,1fr);
  align-items:center;
  gap:6px 7px;
 }
 .estate-properties article>i{grid-column:1;grid-row:1 / span 4}
 .estate-properties article>div{grid-column:2;min-width:0}
 .estate-properties article>button{
  grid-column:2!important;
  width:100%;
  min-width:0;
  justify-self:stretch;
 }

 .dm-game-controls{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  justify-content:stretch;
  align-items:stretch;
 }
 .dm-game-controls button{width:100%;min-width:0;max-width:100%}
}

/* Wide/fullscreen surfaces may use columns, but every track must still be
   shrinkable so translated labels and long user names cannot widen the panel. */
@container game-panel (min-width:900px){
 .dm-game-library{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
 .dm-game-library>*{min-width:0}
 .game-ai-options,
 .frontiers-team-options{grid-template-columns:minmax(0,1fr) minmax(150px,auto)}
 .estate-trade-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Specificity resets for earlier compact/game-specific rules. */
@container game-panel (max-width:899px){
 .estate-create .game-ai-options{grid-template-columns:minmax(0,1fr)}
 .frontiers-team-options .game-ai-toggle{grid-row:auto}
 .dm-game-panel.game-panel-narrow .game-ai-target,
 .dm-game-panel.game-panel-narrow .frontiers-team-options .game-ai-target{
  grid-template-columns:minmax(0,1fr);
  width:100%;
 }
 .dm-game-panel.game-panel-narrow .game-ai-target .field,
 .dm-game-panel.game-panel-narrow .frontiers-team-options .game-ai-target .field{
  width:100%;
  min-width:0;
  max-width:100%;
 }
}

/* v1.6.0.146 Arcade — City Estates player dots sit slightly inward from the ownership edge for better spacing. */
.estate-board.board-40 .side-bottom>.estate-space-tokens{
 left:3px;right:3px;top:auto;bottom:5px;flex-direction:row;align-items:flex-end;justify-content:center;
}
.estate-board.board-40 .side-top>.estate-space-tokens{
 left:3px;right:3px;top:5px;bottom:auto;flex-direction:row;align-items:flex-start;justify-content:center;
}
.estate-board.board-40 .side-left>.estate-space-tokens{
 left:5px;right:auto;top:3px;bottom:3px;flex-direction:column;align-items:flex-start;justify-content:center;min-height:0;
}
.estate-board.board-40 .side-right>.estate-space-tokens{
 left:auto;right:5px;top:3px;bottom:3px;flex-direction:column;align-items:flex-end;justify-content:center;min-height:0;
}
.estate-board.board-40 .side-left>.estate-space-tokens u+u,
.estate-board.board-40 .side-right>.estate-space-tokens u+u{
 margin-left:0;margin-top:clamp(-8px,-.85cqw,-4px);
}

/* GIF picker and message media */
.composer .gif{display:grid;place-items:center}
.composer-gif-label{display:inline-grid;place-items:center;min-width:25px;height:18px;padding:0 3px;border:2px solid currentColor;border-radius:4px;font-size:9px;font-weight:900;line-height:1;letter-spacing:-.2px;color:currentColor;box-sizing:border-box}
body>.gif-picker{position:fixed;z-index:165;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;overflow:hidden;min-width:0;background:var(--popover,var(--panel));color:var(--text);border:1px solid color-mix(in srgb,var(--muted) 24%,transparent);border-radius:10px;box-shadow:0 18px 55px color-mix(in srgb,#000 58%,transparent)}
.gif-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 8px;background:var(--popover,var(--panel))}
.gif-picker-head>div{display:flex;align-items:center;gap:9px;min-width:0}.gif-picker-head strong{font-size:15px;color:var(--strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gif-picker-head .composer-gif-label{color:var(--strong);flex:none}.gif-picker-head .gif-close{width:32px;height:32px;padding:6px;flex:none;color:var(--muted)}.gif-picker-head .gif-close:hover{background:var(--hover);color:var(--strong)}
.gif-search-row{display:flex;align-items:center;gap:8px;padding:4px 12px 10px;background:var(--popover,var(--panel))}.gif-search-row>.app-icon{width:17px;height:17px;flex:none;color:var(--muted)}.gif-search-row .gif-search{min-width:0;width:100%;height:36px;background:var(--input);color:var(--strong);border:1px solid color-mix(in srgb,var(--muted) 18%,transparent);box-shadow:none}.gif-search-row .gif-search::placeholder{color:var(--muted)}.gif-search-row .gif-search:focus{border-color:color-mix(in srgb,var(--accent) 72%,var(--muted));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent)}
.gif-categories{display:flex;gap:6px;padding:0 12px 10px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid color-mix(in srgb,var(--muted) 18%,transparent);background:var(--popover,var(--panel))}.gif-categories::-webkit-scrollbar{display:none}.gif-categories button{flex:none;border:1px solid color-mix(in srgb,var(--muted) 14%,transparent);border-radius:999px;background:color-mix(in srgb,var(--input) 86%,var(--panel));color:var(--muted);padding:6px 10px;font-size:12px;font-weight:700;cursor:pointer}.gif-categories button:hover,.gif-categories button:focus-visible{background:var(--hover);color:var(--strong);border-color:color-mix(in srgb,var(--muted) 28%,transparent);outline:none}.gif-categories button.active{background:color-mix(in srgb,var(--accent) 22%,var(--input));color:var(--strong);border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}
.gif-results{min-height:0;overflow:auto;padding:8px 8px 10px;overscroll-behavior:contain;background:var(--bg);scrollbar-color:color-mix(in srgb,var(--muted) 45%,transparent) transparent}.gif-results::-webkit-scrollbar{width:10px}.gif-results::-webkit-scrollbar-track{background:transparent}.gif-results::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 42%,transparent);border:3px solid transparent;border-radius:999px;background-clip:padding-box}.gif-results::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--muted) 65%,transparent);border:3px solid transparent;background-clip:padding-box}.gif-grid{columns:2 150px;column-gap:6px}.gif-result{display:block;position:relative;width:100%;padding:0;margin:0 0 6px;border:1px solid color-mix(in srgb,var(--muted) 14%,transparent);border-radius:7px;overflow:hidden;background:var(--input);color:var(--strong);cursor:pointer;break-inside:avoid;text-align:left;min-height:74px;box-shadow:0 1px 0 color-mix(in srgb,#000 18%,transparent)}.gif-result img{display:block;width:100%;height:auto;min-height:74px;max-height:230px;object-fit:cover;background:var(--input);transition:filter .12s ease,transform .12s ease}.gif-result-meta{position:absolute;inset:auto 0 0;padding:26px 8px 7px;background:linear-gradient(transparent,rgba(0,0,0,.78));display:flex;flex-direction:column;gap:1px;opacity:0;transition:opacity .12s ease;pointer-events:none;color:#fff}.gif-result-meta strong,.gif-result-meta small,.gif-result-meta em{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gif-result-meta strong{font-size:11px}.gif-result-meta small,.gif-result-meta em{font-size:9px;color:#ddd;font-style:normal}.gif-result:hover img,.gif-result:focus-visible img{filter:brightness(.86);transform:scale(1.015)}.gif-result:hover .gif-result-meta,.gif-result:focus-visible .gif-result-meta{opacity:1}.gif-result:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.gif-result.sending{opacity:.55;cursor:wait}.gif-load-more{display:block;width:100%;margin:4px 0 0}.gif-more-status{padding:8px;text-align:center;color:var(--muted);font-size:12px}
.gif-loading,.gif-empty{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:var(--muted);padding:18px;background:var(--bg)}.gif-empty strong{color:var(--strong);font-size:14px}.gif-empty span{font-size:12px}.gif-loading-spinner{width:22px;height:22px;border:3px solid color-mix(in srgb,var(--muted) 30%,transparent);border-top-color:var(--accent);border-radius:50%;animation:gif-picker-spin .75s linear infinite}@keyframes gif-picker-spin{to{transform:rotate(360deg)}}
.gif-provider{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 12px;border-top:1px solid color-mix(in srgb,var(--muted) 18%,transparent);background:var(--popover,var(--panel));color:var(--muted);font-size:10px}.gif-provider span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gif-provider a{flex:none;color:var(--link,#00a8fc);text-decoration:none;font-weight:700}.gif-provider a:hover{color:var(--strong);text-decoration:underline}
.message-gif-embed{width:min(420px,100%);margin-top:6px}.message-gif-open{display:block;width:100%;max-width:420px;padding:0;border:1px solid color-mix(in srgb,var(--muted) 14%,transparent);border-radius:8px;overflow:hidden;background:var(--input);cursor:pointer;text-align:left}.message-gif-open img{display:block;width:auto;max-width:100%;height:auto;max-height:420px;object-fit:contain;background:var(--input)}.message-gif-credit{display:flex;align-items:center;gap:6px;max-width:420px;margin-top:4px;color:var(--muted);font-size:10px;line-height:1.25}.message-gif-credit span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-gif-credit a{flex:none;color:var(--muted);text-decoration:none}.message-gif-credit a:hover{color:var(--strong);text-decoration:underline}
@media (max-width:520px){body>.gif-picker{border-radius:9px}.gif-picker-head{padding:10px 10px 7px}.gif-search-row{padding:3px 10px 8px}.gif-categories{padding:0 10px 8px}.gif-results{padding:6px}.gif-grid{columns:2 120px;column-gap:5px}.gif-result{margin-bottom:5px}.gif-result-meta{display:none}.message-gif-open img{max-height:54vh}}

/* ========================================================================== 
   Group Files — private group file manager / explorer
   ========================================================================== */
.main{position:relative}
.header-actions .group-files-toggle.active{background:color-mix(in srgb,var(--accent) 24%,var(--hover));color:var(--strong)}
.group-files-workspace{position:relative;z-index:1;display:block;order:-1;flex:1 1 auto;min-width:0;min-height:0;background:var(--bg);color:var(--text);container-type:inline-size;overflow:hidden}
.group-files-workspace[hidden]{display:none!important}
.group-files-shell{height:100%;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;background:var(--bg)}
.group-files-header{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--top);border-bottom:1px solid color-mix(in srgb,var(--muted) 20%,transparent)}
.group-files-title,.group-files-title>div,.group-files-detail-head>div{min-width:0}
.group-files-title{display:flex;align-items:center;gap:10px}.group-files-title>span{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--accent) 16%,var(--panel));color:var(--accent)}
.group-files-title>span .app-icon{width:20px;height:20px}.group-files-title strong,.group-files-title small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-files-title strong{color:var(--strong);font-size:15px}.group-files-title small{margin-top:2px;color:var(--muted);font-size:11px}
.group-files-header-actions,.group-files-toolbar-actions,.group-files-detail-actions,.group-files-editor-bar,.group-files-footer-actions{display:flex;align-items:center;gap:6px}.group-files-header-actions .icon-btn{width:32px;height:32px;display:grid;place-items:center}
.group-files-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:8px 12px;background:var(--panel);border-bottom:1px solid color-mix(in srgb,var(--muted) 18%,transparent)}
.group-files-breadcrumbs{display:flex;align-items:center;gap:2px;min-width:0;overflow:auto;scrollbar-width:none}.group-files-breadcrumbs::-webkit-scrollbar{display:none}.group-files-breadcrumbs button{flex:none;max-width:180px;display:flex;align-items:center;gap:5px;border:0;background:none;color:var(--muted);padding:6px 7px;border-radius:5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-files-breadcrumbs button:hover,.group-files-breadcrumbs button[aria-current="page"]{background:var(--hover);color:var(--strong)}.group-files-breadcrumbs .app-icon{width:15px;height:15px}.group-files-breadcrumb-sep{color:var(--muted);opacity:.65}
.group-files-toolbar-actions{flex:none}.group-files-toolbar-actions button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:6px 10px}.group-files-toolbar-actions .app-icon{width:16px;height:16px}
.group-files-search{display:flex;align-items:center;gap:5px;width:min(220px,22vw);height:32px;margin:0;padding:0 8px;background:var(--input);border:1px solid color-mix(in srgb,var(--muted) 14%,transparent);border-radius:6px;color:var(--muted);text-transform:none}.group-files-search .app-icon{width:15px;height:15px;flex:none}.group-files-search input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--text);padding:0}.group-files-search input::placeholder{color:var(--muted)}
.group-files-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,34%);min-width:0;min-height:0}
.group-files-browser{position:relative;min-width:0;min-height:0;overflow:auto;padding:0 10px 18px;background:var(--bg);overscroll-behavior:contain}
.group-files-browser-head{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px;padding:9px 11px;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid color-mix(in srgb,var(--muted) 14%,transparent);color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.group-files-section{margin-top:12px}.group-files-section h3{display:flex;align-items:center;gap:6px;margin:0;padding:5px 8px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.group-files-section h3 .app-icon{width:15px;height:15px}.group-files-section h3 b{min-width:20px;padding:1px 6px;border-radius:999px;background:var(--panel);color:var(--muted);font-size:10px;text-align:center}
.group-files-list{display:grid;gap:2px}.group-files-row{width:100%;min-width:0;display:grid;grid-template-columns:36px minmax(0,1fr) 150px 24px;align-items:center;gap:8px;min-height:48px;padding:5px 8px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.group-files-row:hover{background:var(--hover)}.group-files-row.selected{background:color-mix(in srgb,var(--accent) 16%,var(--panel));border-color:color-mix(in srgb,var(--accent) 42%,transparent)}
.group-files-file-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:color-mix(in srgb,var(--muted) 10%,var(--panel));color:var(--muted)}.group-files-file-icon.folder{background:color-mix(in srgb,var(--accent) 15%,var(--panel));color:var(--accent)}.group-files-file-icon.image{color:#45a7d9}.group-files-file-icon.audio{color:#b889eb}.group-files-file-icon.video{color:#ef7b72}.group-files-file-icon.text{color:#57b77a}.group-files-file-icon .app-icon{width:19px;height:19px}
.group-files-row-copy{min-width:0}.group-files-row-copy strong,.group-files-row-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-files-row-copy strong{color:var(--strong);font-size:13px}.group-files-row-copy small{margin-top:2px;color:var(--muted);font-size:10px}.group-files-row-modified{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-files-row-more{color:var(--muted);font-size:18px;text-align:center}
.group-files-empty-row{margin:0;padding:14px 10px;color:var(--muted);font-size:12px}
.group-files-details{min-width:0;min-height:0;overflow:auto;padding:12px;background:var(--panel);border-left:1px solid color-mix(in srgb,var(--muted) 18%,transparent);overscroll-behavior:contain}
.group-files-empty-detail{height:100%;min-height:180px;display:grid;align-content:center;justify-items:center;text-align:center;color:var(--muted);padding:24px}.group-files-empty-detail>span{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--hover)}.group-files-empty-detail .app-icon{width:22px;height:22px}.group-files-empty-detail strong{margin-top:10px;color:var(--strong)}.group-files-empty-detail p{margin:5px 0 0;font-size:12px}
.group-files-detail-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.group-files-detail-head>div{display:flex;align-items:center;gap:9px}.group-files-detail-head strong,.group-files-detail-head small{display:block;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-files-detail-head strong{color:var(--strong)}.group-files-detail-head small{margin-top:2px;color:var(--muted);font-size:10px}.group-files-detail-icon{width:38px;height:38px;display:grid;place-items:center;flex:none;border-radius:9px;background:var(--hover);color:var(--muted)}.group-files-detail-icon.folder{color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,var(--hover))}.group-files-detail-icon .app-icon{width:20px;height:20px}
.group-files-detail-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));margin:0 0 12px}.group-files-detail-actions button{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:32px;padding:6px 8px}.group-files-detail-actions .app-icon{width:15px;height:15px}
.group-files-info{display:grid;gap:1px;border:1px solid color-mix(in srgb,var(--muted) 16%,transparent);border-radius:8px;overflow:hidden}.group-files-info-line{display:grid;grid-template-columns:minmax(80px,.8fr) minmax(0,1.3fr);gap:10px;padding:8px 9px;background:color-mix(in srgb,var(--bg) 40%,var(--panel));font-size:11px}.group-files-info-line+ .group-files-info-line{border-top:1px solid color-mix(in srgb,var(--muted) 12%,transparent)}.group-files-info-line span{color:var(--muted)}.group-files-info-line strong{min-width:0;color:var(--text);font-weight:600;overflow-wrap:anywhere;text-align:right}.group-files-info-line strong.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;word-break:break-all}
.group-files-preview{display:grid;place-items:center;min-height:170px;max-height:360px;margin-bottom:12px;border:1px solid color-mix(in srgb,var(--muted) 18%,transparent);border-radius:8px;background:color-mix(in srgb,var(--rail) 70%,var(--bg));overflow:auto}.group-files-preview.image img{display:block;max-width:100%;max-height:340px;object-fit:contain}.group-files-preview.document{height:min(48vh,360px);padding:0}.group-files-preview.document iframe{width:100%;height:100%;border:0;background:#fff}.group-files-preview.media{padding:18px}.group-files-preview audio,.group-files-preview video{display:block;max-width:100%;width:100%}.group-files-preview video{max-height:330px}.group-files-preview.text{display:block;padding:0}.group-files-preview.text pre{margin:0;min-width:100%;padding:12px;color:var(--text);font:11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.group-files-preview.unavailable{align-content:center;text-align:center;color:var(--muted);padding:24px}.group-files-preview.unavailable .app-icon{width:28px;height:28px}.group-files-preview.unavailable strong{margin-top:8px;color:var(--strong)}.group-files-preview.unavailable p{margin:5px 0 0;font-size:11px}
.group-files-editor{display:grid;grid-template-rows:minmax(220px,1fr) auto;gap:8px;min-height:0}.group-files-editor textarea{min-height:280px;resize:vertical;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre;tab-size:4}.group-files-editor-bar{justify-content:flex-end}.group-files-editor-bar>span{margin-right:auto;color:var(--muted);font-size:10px}.group-files-editor-bar button{display:flex;align-items:center;gap:5px;padding:7px 10px}.group-files-editor-bar .app-icon{width:14px;height:14px}
.group-files-loading{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;gap:9px;background:color-mix(in srgb,var(--bg) 76%,transparent);backdrop-filter:blur(2px);color:var(--strong)}
.group-files-drop-hint{position:absolute;inset:16px;z-index:7;display:none;place-content:center;justify-items:center;gap:7px;border:2px dashed color-mix(in srgb,var(--accent) 70%,transparent);border-radius:12px;background:color-mix(in srgb,var(--bg) 88%,transparent);color:var(--accent);pointer-events:none}.group-files-drop-hint .app-icon{width:34px;height:34px}.group-files-browser.dragging .group-files-drop-hint{display:grid}
.group-files-status{display:flex;align-items:center;gap:14px;min-height:32px;padding:6px 12px;background:var(--panel);border-top:1px solid color-mix(in srgb,var(--muted) 16%,transparent);color:var(--muted);font-size:10px;overflow:auto;white-space:nowrap}.group-files-status>span{display:flex;align-items:center;gap:4px}.group-files-status .app-icon{width:13px;height:13px;flex:none}.group-files-status>span:first-child{color:color-mix(in srgb,var(--green) 80%,var(--text))}
.group-files-dialog-layer{position:absolute;inset:0;z-index:30;display:grid;place-items:center;padding:18px;background:#0008}.group-files-dialog{width:min(390px,100%);padding:18px;border:1px solid color-mix(in srgb,var(--muted) 20%,transparent);border-radius:10px;background:var(--panel);box-shadow:0 18px 50px #0008}.group-files-dialog h3{margin:0 0 12px;color:var(--strong)}.group-files-dialog label{margin:0 0 6px}.group-files-dialog>div{display:flex;justify-content:flex-end;gap:7px;margin-top:14px}.group-files-dialog button{min-width:80px}
.group-files-workspace button:focus-visible,.group-files-workspace input:focus-visible,.group-files-workspace textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@container (max-width:840px){.group-files-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.group-files-layout .group-files-details{display:none}.group-files-layout.has-selection{grid-template-rows:minmax(180px,55%) minmax(180px,45%)}.group-files-layout.has-selection.detail-edit{grid-template-rows:minmax(140px,35%) minmax(260px,65%)}.group-files-layout.has-selection .group-files-details{display:block;border-left:0;border-top:1px solid color-mix(in srgb,var(--muted) 18%,transparent)}.group-files-toolbar{align-items:stretch;flex-direction:column}.group-files-toolbar-actions{width:100%}.group-files-search{flex:1;width:auto}.group-files-breadcrumbs{width:100%}.group-files-browser-head{grid-template-columns:minmax(0,1fr) 120px}.group-files-row{grid-template-columns:36px minmax(0,1fr) 120px 24px}}
@container (max-width:590px){.group-files-header{min-height:52px;padding:8px 10px}.group-files-title>span{width:32px;height:32px}.group-files-toolbar{padding:7px 8px}.group-files-toolbar-actions{display:grid;grid-template-columns:minmax(0,1fr) auto auto}.group-files-search{grid-column:1/-1;width:100%}.group-files-toolbar-actions button span{display:none}.group-files-toolbar-actions button{width:34px;padding:6px}.group-files-browser{padding-inline:6px}.group-files-browser-head{grid-template-columns:minmax(0,1fr);padding-inline:8px}.group-files-browser-head span:last-child,.group-files-row-modified{display:none}.group-files-row{grid-template-columns:34px minmax(0,1fr) 22px;min-height:46px;padding-inline:6px}.group-files-file-icon{width:32px;height:32px}.group-files-status{gap:10px}.group-files-status>span:nth-child(2){max-width:260px;overflow:hidden;text-overflow:ellipsis}.group-files-status>span:nth-child(3){display:none}}

/* Group Files navigation + view modes */
.group-files-navigation{display:flex;align-items:center;gap:5px;min-width:0;flex:1}.group-files-parent{width:30px;height:30px;min-width:30px;flex:none}.group-files-view-toggle{white-space:nowrap}.group-files-view-toggle .group-files-view-chevron{display:grid;place-items:center;margin-left:-2px}.group-files-view-toggle .group-files-view-chevron .app-icon{width:13px;height:13px}.group-files-row-more{position:relative;z-index:2;display:grid;place-items:center;width:24px;height:30px;border-radius:5px;cursor:pointer}.group-files-row-more:hover{background:color-mix(in srgb,var(--muted) 14%,transparent);color:var(--strong)}
.group-files-browser.view-grid .group-files-browser-head{display:none}.group-files-browser.view-grid .group-files-section{margin-top:14px}.group-files-browser.view-grid .group-files-section h3{position:sticky;top:0;z-index:3;padding:7px 8px;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(8px)}.group-files-browser.view-grid .group-files-list{grid-template-columns:repeat(auto-fill,minmax(138px,1fr));gap:9px}.group-files-browser.view-grid .group-files-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:64px auto auto;justify-items:center;align-content:start;gap:5px;min-height:142px;padding:13px 9px 10px;border-color:color-mix(in srgb,var(--muted) 12%,transparent);background:color-mix(in srgb,var(--panel) 68%,var(--bg));text-align:center}.group-files-browser.view-grid .group-files-row:hover{border-color:color-mix(in srgb,var(--muted) 22%,transparent);background:var(--hover)}.group-files-browser.view-grid .group-files-row.selected{border-color:color-mix(in srgb,var(--accent) 48%,transparent);background:color-mix(in srgb,var(--accent) 13%,var(--panel))}.group-files-browser.view-grid .group-files-file-icon{width:58px;height:58px;border-radius:12px}.group-files-browser.view-grid .group-files-file-icon .app-icon{width:30px;height:30px}.group-files-browser.view-grid .group-files-row-copy{width:100%;text-align:center}.group-files-browser.view-grid .group-files-row-copy strong{font-size:12px}.group-files-browser.view-grid .group-files-row-copy small{font-size:9px}.group-files-browser.view-grid .group-files-row-modified{max-width:100%;font-size:9px;text-align:center}.group-files-browser.view-grid .group-files-row-more{position:absolute;top:6px;right:6px;background:color-mix(in srgb,var(--panel) 88%,transparent);backdrop-filter:blur(4px)}.group-files-browser.view-grid .group-files-empty-row{grid-column:1/-1}
@container (max-width:840px){.group-files-navigation{width:100%}.group-files-browser.view-grid .group-files-list{grid-template-columns:repeat(auto-fill,minmax(124px,1fr))}}
@container (max-width:590px){.group-files-toolbar-actions{grid-template-columns:minmax(0,1fr) auto auto auto}.group-files-view-toggle .group-files-view-label,.group-files-view-toggle .group-files-view-chevron{display:none}.group-files-navigation{gap:3px}.group-files-parent{width:30px;min-width:30px}.group-files-browser.view-grid .group-files-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.group-files-browser.view-grid .group-files-row{min-height:132px;padding:11px 7px 9px}.group-files-browser.view-grid .group-files-file-icon{width:52px;height:52px}.group-files-browser.view-grid .group-files-file-icon .app-icon{width:27px;height:27px}.group-files-browser.view-grid .group-files-row-modified{display:block}}

/* Group Files interaction, layering and upload progress */
.main.group-files-open>.messages{display:none!important}.main.group-files-open>.composer-wrap{position:relative;z-index:2;order:0;flex:none;background:var(--bg)}
.group-files-view-wrap{position:relative;display:flex;min-width:0}
.group-files-view-menu.context-menu{position:absolute!important;left:auto!important;right:0!important;top:calc(100% + 5px)!important;z-index:15!important;width:190px;min-width:190px;max-height:none;overflow:visible}
.group-files-view-menu .context-menu-label{display:flex;align-items:center;min-width:0}.group-files-view-menu .context-menu-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.group-files-upload-layer{position:absolute;inset:0;z-index:18;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.56);backdrop-filter:blur(2px)}
.group-files-upload-box{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;width:min(620px,100%);max-height:min(620px,calc(100% - 20px));overflow:hidden;border:1px solid color-mix(in srgb,var(--muted) 22%,transparent);border-radius:12px;background:var(--panel);box-shadow:0 18px 60px rgba(0,0,0,.5)}
.group-files-upload-box>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid color-mix(in srgb,var(--muted) 16%,transparent)}
.group-files-upload-box>header>div{display:flex;align-items:center;gap:10px;min-width:0}.group-files-upload-box>header>div>span{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.group-files-upload-box>header>div>span .app-icon{width:19px;height:19px}.group-files-upload-box>header strong,.group-files-upload-box>header small{display:block}.group-files-upload-box>header strong{color:var(--strong);font-size:14px}.group-files-upload-box>header small{margin-top:2px;color:var(--muted);font-size:10px}
.group-files-upload-overall{padding:11px 16px;border-bottom:1px solid color-mix(in srgb,var(--muted) 13%,transparent);background:color-mix(in srgb,var(--bg) 24%,var(--panel))}.group-files-upload-overall>div:first-child{display:flex;justify-content:space-between;gap:12px;color:var(--text);font-size:11px}.group-files-upload-overall>small{display:block;margin-top:5px;color:var(--muted);font-size:9px}.group-files-upload-overall-track,.group-files-upload-track{overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--muted) 17%,transparent)}.group-files-upload-overall-track{height:7px;margin-top:7px}.group-files-upload-track{height:5px;margin-top:7px}.group-files-upload-overall-track>i,.group-files-upload-track>i{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .12s linear}.group-files-upload-row.status-done .group-files-upload-track>i{background:var(--green)}.group-files-upload-row.status-error .group-files-upload-track>i{background:var(--danger)}
.group-files-upload-list{display:grid;align-content:start;gap:1px;min-height:0;overflow:auto;padding:7px;background:color-mix(in srgb,var(--bg) 32%,var(--panel))}.group-files-upload-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;background:var(--panel)}.group-files-upload-file-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;background:color-mix(in srgb,var(--accent) 11%,var(--bg));color:var(--muted)}.group-files-upload-file-icon .app-icon{width:19px;height:19px}.group-files-upload-copy{min-width:0}.group-files-upload-copy strong,.group-files-upload-copy small,.group-files-upload-state{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-files-upload-copy strong{color:var(--strong);font-size:11px}.group-files-upload-copy small{margin-top:2px;color:var(--muted);font-size:9px}.group-files-upload-state{margin-top:4px;color:var(--muted);font-size:9px}.group-files-upload-row.status-uploading .group-files-upload-state{color:var(--accent)}.group-files-upload-row.status-done .group-files-upload-state{color:var(--green)}.group-files-upload-row.status-error .group-files-upload-state{color:var(--danger)}.group-files-upload-cancel{min-width:72px;padding:6px 9px}.group-files-upload-result{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:color-mix(in srgb,var(--muted) 14%,transparent);color:var(--muted);font-weight:900}.group-files-upload-row.status-done .group-files-upload-result{background:color-mix(in srgb,var(--green) 18%,transparent);color:var(--green)}.group-files-upload-row.status-error .group-files-upload-result{background:color-mix(in srgb,var(--danger) 18%,transparent);color:var(--danger)}
.group-files-upload-box>footer{display:flex;justify-content:flex-end;gap:8px;padding:11px 16px;border-top:1px solid color-mix(in srgb,var(--muted) 16%,transparent)}.group-files-upload-box>footer button{min-width:96px}
@container (max-width:590px){.group-files-upload-layer{padding:8px}.group-files-upload-box{max-height:calc(100% - 6px);border-radius:9px}.group-files-upload-box>header,.group-files-upload-overall,.group-files-upload-box>footer{padding-inline:11px}.group-files-upload-row{grid-template-columns:34px minmax(0,1fr) auto;padding:8px}.group-files-upload-file-icon{width:32px;height:32px}.group-files-upload-cancel{min-width:34px;width:34px;font-size:0;padding:6px}.group-files-upload-cancel::after{content:'×';font-size:18px}}

/* v1.6.0.176 — Group Files visibility, search and archive actions. */
.header-actions .group-files-toggle[hidden],.header-actions .group-files-toggle[style*="display: none"]{display:none!important}
.main.group-files-open>.composer-wrap{display:none!important}
.group-files-row.search-hidden{display:none!important}
.group-files-search-empty{display:none!important}
.group-files-search-empty.show{display:block!important}
.group-files-upload-box>footer{flex-wrap:wrap}
.group-files-detail-actions{flex-wrap:wrap}
.group-files-file-icon.archive{background:color-mix(in srgb,var(--yellow) 13%,var(--bg));color:var(--yellow)}

/* v1.6.0.178 — Spotify status privacy control */
.spotify-connection-card{flex-wrap:wrap}
.spotify-status-visibility{flex:1 1 100%;margin-top:4px;padding-top:14px;border-top:1px solid var(--border);width:100%}

/* Administration: dedicated database backup manager */
.admin-database-backups{gap:12px}
.admin-database-backup-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.admin-database-backup-list{display:grid;gap:8px;min-width:0;max-height:460px;overflow:auto;overscroll-behavior:contain;padding-right:2px}
.admin-database-backup-list.loading{opacity:.68;pointer-events:none}
.admin-database-backup-list>p{margin:0;color:var(--muted);line-height:1.45}
.admin-database-backup-list .admin-database-backup-error{color:var(--danger,#fa777c)}
.admin-database-backup-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px;border:1px solid var(--border);border-radius:10px;background:var(--input);min-width:0}
.admin-database-backup-row.is-ready{border-color:color-mix(in srgb,#23a55a 44%,var(--border));background:color-mix(in srgb,#23a55a 7%,var(--input))}
.admin-database-backup-info{display:grid;gap:5px;min-width:0}
.admin-database-backup-info>small{color:var(--muted);line-height:1.35}
.admin-database-backup-info>p{margin:0;color:var(--text);font-size:12px;line-height:1.4}
.admin-database-backup-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px}
.admin-database-backup-actions>a,.admin-database-backup-actions>button{min-height:34px;margin:0!important;white-space:nowrap;text-decoration:none}
@media(max-width:720px){.admin-database-backup-row{grid-template-columns:1fr}.admin-database-backup-actions{justify-content:stretch}.admin-database-backup-actions>a,.admin-database-backup-actions>button{flex:1 1 120px;text-align:center}}

/* v1.7.0.0 Rocinante — Administration database backup toolbar alignment. */
.admin-database-backup-toolbar{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:wrap;
  gap:8px;
  min-width:0;
}
.settings-content .admin-database-backup-toolbar>.primary,
.settings-content .admin-database-backup-toolbar>.secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:center!important;
  height:var(--inline-control-height)!important;
  min-height:var(--inline-control-height)!important;
  margin:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
  line-height:normal!important;
  vertical-align:middle;
  white-space:nowrap;
}
@media(max-width:560px){
  .admin-database-backup-toolbar{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .settings-content .admin-database-backup-toolbar>.primary,
  .settings-content .admin-database-backup-toolbar>.secondary{
    width:100%;
    min-width:0;
  }
}

/* v1.7.0.3 Rocinante — translation-resilient controls and action layouts. */
.primary,
.secondary,
.danger-button,
.danger-text{
  min-width:0;
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
  text-align:center;
}
.inline,
.actions,
.modal-actions,
.modal-footer,
.messagebox-actions,
.role-editor-actions,
.voice-settings-actions,
.invite-row-actions,
.danger-row,
.account-detail-row,
.security-action-row,
.cookie-consent-actions,
.admin-database-backup-toolbar,
.admin-database-backup-actions,
.group-files-detail-actions,
.group-files-upload-box>footer,
.developer-doc-download-actions,
.developer-language-download-bar,
.settings-page-head{
  min-width:0;
  max-width:100%;
  flex-wrap:wrap;
}
.inline>button,
.actions>button,
.modal-actions>button,
.modal-footer>button,
.messagebox-actions>button,
.role-editor-actions>button,
.voice-settings-actions>button,
.invite-row-actions>button,
.danger-row>button,
.account-detail-row>button,
.security-action-row>button,
.cookie-consent-actions>button,
.admin-database-backup-toolbar>button,
.admin-database-backup-actions>button,
.group-files-detail-actions>button,
.group-files-upload-box>footer>button,
.developer-doc-download-actions>button{
  min-width:0;
  max-width:100%;
  flex-shrink:1;
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.2;
}
.settings-list>div{
  min-width:0;
  flex-wrap:wrap;
}
.settings-list>div>span{
  min-width:0;
  flex:1 1 220px;
}
.settings-list>div>button{
  min-width:0;
  max-width:100%;
  flex:0 1 auto;
  white-space:normal;
  overflow-wrap:anywhere;
}
.settings-page-head>*{min-width:0}

/* Settings navigation can grow vertically when a translated label is longer. */
.settings-nav button{
  height:auto!important;
  min-height:34px!important;
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.25;
}

/* Update controls previously forced one-line labels into a fixed 38px height. */
.admin-update-actions{
  width:min(100%,420px);
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.admin-update-actions>button{
  height:auto!important;
  min-height:var(--inline-control-height)!important;
  padding:8px 12px!important;
  line-height:1.2!important;
  white-space:normal!important;
  overflow-wrap:anywhere;
}
.admin-update-restore{
  min-width:0!important;
  max-width:100%;
  height:auto!important;
  min-height:34px;
  white-space:normal!important;
  line-height:1.2;
}

/* Database backup controls use minimum height rather than a fixed translated-label height. */
.settings-content .admin-database-backup-toolbar>.primary,
.settings-content .admin-database-backup-toolbar>.secondary{
  height:auto!important;
  min-height:var(--inline-control-height)!important;
  padding:8px 12px!important;
  line-height:1.2!important;
  white-space:normal!important;
  overflow-wrap:anywhere;
}
.admin-database-backup-actions>a,
.admin-database-backup-actions>button{
  min-width:0;
  max-width:100%;
  height:auto;
  padding-block:7px;
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.2;
}

/* Other translated action groups that previously assumed short English labels. */
.cookie-consent-actions{white-space:normal}
.security-action-card>button,
.security-locked-card>button,
.security-error-card>button,
.security-action-row>button{
  min-width:0;
  max-width:100%;
  height:auto;
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.2;
}
.developer-language-download-bar{row-gap:10px}
.developer-language-download-bar>*{min-width:0}

@media(max-width:620px){
  .admin-update-actions{width:100%;grid-template-columns:1fr}
  .settings-page-head{align-items:stretch}
}

/* GIF multi-source attribution */
.gif-provider-links{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:5px;overflow:hidden;white-space:nowrap}
.gif-provider-links>span{flex:none;opacity:.45;color:var(--muted)}
.gif-provider-links a{min-width:0;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:420px){.gif-provider{align-items:flex-start;flex-direction:column;gap:4px}.gif-provider-links{width:100%;justify-content:flex-start;overflow-x:auto;scrollbar-width:none}.gif-provider-links::-webkit-scrollbar{display:none}}

/* v1.7.0.7 Rocinante — message GIFs animate for ten seconds, then keep the captured frame. */
.message-gif-open{position:relative}
.message-gif-open>.message-gif-freeze-frame{
  display:none;
  width:auto;
  max-width:100%;
  height:auto;
  max-height:420px;
  object-fit:contain;
  background:var(--input);
}
.message-gif-open.gif-frozen>img{display:none}
.message-gif-open.gif-frozen>.message-gif-freeze-frame{display:block}
@media (max-width:520px){.message-gif-open>.message-gif-freeze-frame{max-height:54vh}}


/* v1.7.0.10 Rocinante — virtualized large realtime surfaces. */
.message-virtual-placeholder,
.member-virtual-placeholder{
  box-sizing:border-box;
  width:100%;
  min-width:0;
  flex:0 0 auto;
  pointer-events:none;
  visibility:hidden;
  contain:size layout style paint;
}
.message-virtual-placeholder{min-height:52px}
.member-virtual-placeholder{min-height:42px}

/* v1.7.0.11 Rocinante — Administration realtime/performance diagnostics. */
.admin-realtime-diagnostics{gap:12px;min-width:0}
.admin-realtime-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;min-width:0}
.admin-realtime-head>div{min-width:0;flex:1 1 auto}
.admin-realtime-head h3{margin:0 0 4px}
.admin-realtime-head .settings-help{margin:0}
.admin-realtime-refresh{margin:0!important;flex:0 1 auto;max-width:100%;white-space:normal;text-align:center;overflow-wrap:anywhere}
.admin-realtime-status{min-height:20px;color:var(--muted);font-size:12px;line-height:1.45}
.admin-realtime-diagnostics.loading .admin-realtime-status{opacity:.8}
.admin-realtime-diagnostics.has-index-warning .admin-realtime-status{color:var(--warning,#f0b232)}
.admin-realtime-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:9px;min-width:0}
.admin-realtime-metric{display:flex;flex-direction:column;gap:4px;min-width:0;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel);overflow:hidden}
.admin-realtime-metric small,.admin-realtime-metric span{color:var(--muted);font-size:11px;line-height:1.35;overflow-wrap:anywhere}
.admin-realtime-metric strong{color:var(--strong);font-size:18px;line-height:1.15;overflow-wrap:anywhere}
.admin-realtime-stream-list{display:grid;gap:8px;min-width:0}
.admin-realtime-stream-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;min-width:0}
.admin-realtime-stream-title strong{color:var(--strong)}
.admin-realtime-stream-title small{color:var(--muted);text-align:right;overflow-wrap:anywhere}
.admin-realtime-stream-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,1.45fr);align-items:center;gap:12px;min-width:0;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}
.admin-realtime-stream-row>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.admin-realtime-stream-row>div:first-child strong,.admin-realtime-stream-row>div:first-child small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-realtime-stream-row>div:first-child small{color:var(--muted)}
.admin-realtime-stream-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;min-width:0}
.admin-realtime-stream-values span{display:flex;flex-direction:column;align-items:flex-end;gap:1px;min-width:0;color:var(--muted);font-size:10px;text-transform:none;overflow-wrap:anywhere}
.admin-realtime-stream-values b{max-width:100%;color:var(--strong);font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-realtime-empty{margin:0}
@media(max-width:720px){
 .admin-realtime-head{align-items:stretch;flex-direction:column}
 .admin-realtime-refresh{width:100%}
 .admin-realtime-stream-row{grid-template-columns:1fr;align-items:start}
 .admin-realtime-stream-values span{align-items:flex-start}
 .admin-realtime-stream-title{align-items:flex-start;flex-direction:column}
 .admin-realtime-stream-title small{text-align:left}
}
@media(max-width:460px){.admin-realtime-stream-values{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* v1.7.0.12 Rocinante — optimistic interaction states. */
.message.optimistic-message{opacity:.76;filter:saturate(.9)}
.message.optimistic-message .message-send-state{display:inline-flex;align-items:center;min-width:0;margin-left:6px;color:var(--muted);font-size:11px;font-weight:600;line-height:1.2;white-space:normal;overflow-wrap:anywhere}
.message.optimistic-message .optimistic-attachment{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%;margin-top:7px;padding:8px 10px;border:1px dashed var(--border);border-radius:8px;background:var(--input);color:var(--muted)}
.message.optimistic-message .optimistic-attachment>*{min-width:0;overflow-wrap:anywhere}
.message.message-optimistic-edit .content{opacity:.82}
.message.message-optimistic-reaction .reactions{opacity:.86}
@media (prefers-reduced-motion:no-preference){
 .message.optimistic-message,.message.message-optimistic-edit .content,.message.message-optimistic-reaction .reactions{transition:opacity .16s ease}
}

/* v1.7.1.1 Group Files viewport virtualization */
.group-files-row-placeholder{visibility:hidden;pointer-events:none;contain:layout paint style;min-height:44px}
.group-files-row-placeholder.search-hidden{display:none!important}

/* v1.7.1.5 — secure Developer Bot API explorer and documentation tooling. */
.developer-capability-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.developer-calculator-result{display:grid;grid-template-columns:minmax(0,.55fr) minmax(0,.55fr) minmax(260px,1.4fr);gap:10px;align-items:end}
.developer-calculator-result>label,.developer-explorer-grid>label{display:grid;gap:7px;min-width:0;color:var(--text);font-size:12px;font-weight:800}
.developer-calculator-result .developer-copy-field{min-width:0}
.developer-api-explorer{gap:16px}
.developer-explorer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.developer-explorer-token-label,.developer-explorer-body-label{grid-column:1/-1}
.developer-explorer-body{min-height:150px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.5}
.developer-explorer-status{min-height:18px;color:var(--muted);font-size:12px;font-weight:700}
.developer-explorer-output{min-height:130px;max-height:420px;padding-right:17px;white-space:pre-wrap;overflow-wrap:anywhere}
.developer-api-explorer .developer-form-actions{justify-content:flex-start}
@media(max-width:900px){.developer-capability-grid,.developer-calculator-result,.developer-explorer-grid{grid-template-columns:1fr}.developer-explorer-token-label,.developer-explorer-body-label{grid-column:auto}}
.developer-contract-hash{display:block;max-width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--input);color:var(--muted);font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere;word-break:break-all}

/* v1.7.1.8 — Developer credential lifecycle and privacy-safe operations. */
.developer-operations{display:grid;gap:18px}
.developer-token-list,.developer-audit-list{display:grid;gap:8px}
.developer-token-row,.developer-audit-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--input)}
.developer-token-row>div,.developer-audit-row>div{display:grid;gap:4px;min-width:0}
.developer-token-row code,.developer-audit-row code{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.developer-token-row small,.developer-audit-row small{color:var(--muted);font-size:11px;line-height:1.35}
.developer-operation-table{overflow:auto;border:1px solid var(--border);border-radius:11px;background:var(--input)}
.developer-operation-table-head,.developer-operation-table-row{display:grid;grid-template-columns:minmax(180px,1.3fr) minmax(120px,.7fr) minmax(180px,1fr) minmax(150px,.8fr);gap:10px;align-items:center;min-width:760px;padding:10px 12px}
.developer-operation-table-head{position:sticky;top:0;background:var(--panel);color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.developer-operation-table-row{border-top:1px solid var(--border);font-size:12px}
.developer-operation-table-row code{font-size:11px;color:var(--muted)}
.developer-operation-table-row b{font-size:10px;color:var(--strong)}

/* Reaction identity tooltip: loaded on demand so normal message payloads stay small. */
.reaction-users-tooltip{position:fixed;z-index:12000;max-width:min(340px,calc(100vw - 16px));min-width:150px;padding:9px 11px;border:1px solid var(--border,#1e1f22);border-radius:7px;background:var(--popover,var(--panel));color:var(--text);box-shadow:0 8px 24px #0008;pointer-events:none;font-size:12px;line-height:1.35}
.reaction-users-tooltip-head{display:flex;align-items:center;gap:8px;margin-bottom:4px;color:var(--muted)}
.reaction-users-tooltip-head strong{font-size:17px;line-height:1;color:var(--strong)}
.reaction-users-tooltip-names{color:var(--strong);font-weight:600;overflow-wrap:anywhere}

/* v1.7.1.12 — secure ZIP staging for application updates. */
.admin-update-zip-stage{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px 14px;
  align-items:center;
  padding:11px;
  border:1px solid var(--border);
  border-radius:10px;
  background:color-mix(in srgb,var(--input) 76%,transparent);
  min-width:0;
}
.admin-update-zip-copy{display:grid;gap:3px;min-width:0}
.admin-update-zip-copy strong{color:var(--text)}
.admin-update-zip-copy small{color:var(--muted);line-height:1.4}
.admin-update-zip-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:7px;
  min-width:0;
}
.admin-update-zip-actions>button{
  min-width:0!important;
  max-width:100%;
  height:auto!important;
  min-height:var(--inline-control-height)!important;
  margin:0!important;
  padding:8px 11px!important;
  line-height:1.2!important;
  white-space:normal!important;
}
.admin-update-zip-selection{
  grid-column:1/-1;
  display:grid;
  gap:3px;
  min-width:0;
  padding-top:9px;
  border-top:1px solid var(--border);
}
.admin-update-zip-selection>span{
  min-width:0;
  color:var(--text);
  font-size:12px;
  font-weight:700;
  overflow-wrap:anywhere;
}
.admin-update-zip-selection>small{color:var(--muted);line-height:1.4;overflow-wrap:anywhere}
.admin-update-zip-progress{
  position:relative;
  height:5px;
  margin-top:5px;
  overflow:hidden;
  border-radius:999px;
  background:color-mix(in srgb,var(--border) 75%,transparent);
}
.admin-update-zip-progress[hidden]{display:none!important}
.admin-update-zip-progress>span{
  position:absolute;
  inset:0 auto 0 0;
  width:0;
  border-radius:inherit;
  background:var(--accent);
  transition:width .12s linear;
}
@media(max-width:760px){
  .admin-update-zip-stage{grid-template-columns:1fr}
  .admin-update-zip-actions{justify-content:stretch}
  .admin-update-zip-actions>button{flex:1 1 140px}
}
@media(max-width:420px){.admin-update-zip-actions{display:grid;grid-template-columns:1fr}.admin-update-zip-actions>button{width:100%!important}}

/* v1.7.1.17 — Administration redesign: dedicated control center, single navigation, responsive operational UI. */
.modal-backdrop>.modal.modal-settings.modal-administration{
  --admin-surface:color-mix(in srgb,var(--panel) 96%,var(--bg));
  --admin-surface-raised:color-mix(in srgb,var(--panel) 88%,var(--input));
  --admin-surface-soft:color-mix(in srgb,var(--input) 66%,var(--panel));
  --admin-line:color-mix(in srgb,var(--border) 88%,transparent);
  --admin-line-strong:color-mix(in srgb,var(--border) 72%,var(--text));
  --admin-radius:14px;
  --settings-content-max:1320px; /* compatibility token; Administration uses its explicit full-workspace widths below */
  width:min(1500px,calc(100vw - 28px))!important;
  height:min(960px,calc(100dvh - 24px))!important;
  overflow:hidden;
  border:1px solid var(--admin-line)!important;
  border-radius:18px!important;
  background:var(--admin-surface)!important;
  box-shadow:0 24px 80px rgba(0,0,0,.34)!important;
}
.modal-backdrop>.modal.modal-settings.modal-administration>.administration-settings-shell{
  grid-template-columns:minmax(0,1fr)!important;
  width:100%;
  height:100%;
  min-width:0;
  background:var(--admin-surface);
}
.modal-backdrop>.modal.modal-settings.modal-administration>.administration-settings-shell>.settings-nav{display:none!important}
.modal-backdrop>.modal.modal-settings.modal-administration .administration-settings-content{
  position:relative;
  width:100%;
  max-width:none!important;
  min-width:0;
  padding:0!important;
  overflow:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  background:
    radial-gradient(circle at 8% 0%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 32rem),
    linear-gradient(180deg,color-mix(in srgb,var(--bg) 20%,var(--admin-surface)),var(--admin-surface) 270px);
}
.modal-backdrop>.modal.modal-settings.modal-administration .administration-settings-content>*{
  width:min(1480px,100%);
  max-width:1480px!important;
  margin-inline:auto;
  box-sizing:border-box;
}
.modal-backdrop>.modal.modal-settings.modal-administration .modal-close{z-index:30}

/* Header / identity */
.settings-content .admin-page-head.admin-page-hero{
  position:sticky;
  top:0;
  z-index:21;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:18px;
  min-height:92px;
  margin:0!important;
  padding:18px clamp(20px,2.5vw,36px)!important;
  border-bottom:1px solid var(--admin-line);
  background:color-mix(in srgb,var(--admin-surface) 93%,transparent);
  backdrop-filter:blur(18px) saturate(1.08);
}
.admin-page-head>div:first-child{display:grid;gap:3px;min-width:0}
.admin-page-eyebrow{color:var(--accent);font-size:10px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
.admin-page-head h2{margin:0;color:var(--strong);font-size:clamp(22px,2vw,28px);font-weight:800;line-height:1.08;letter-spacing:-.025em}
.admin-page-head p{margin:2px 0 0;max-width:760px;color:var(--muted);font-size:12px;line-height:1.45}
.admin-page-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
.settings-content .admin-back-user-settings{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:36px;
  margin:0!important;
  padding:6px 11px;
  border-color:var(--admin-line)!important;
  background:var(--admin-surface-raised)!important;
}
.admin-back-icon{display:grid;place-items:center;width:16px;height:16px;transform:rotate(90deg)}
.admin-back-icon .app-icon{width:14px;height:14px}
.admin-page-release{
  display:grid;
  gap:2px;
  min-width:170px;
  padding:8px 11px;
  border:1px solid var(--admin-line);
  border-radius:10px;
  background:var(--admin-surface-raised);
  text-align:right;
}
.admin-page-release small{color:var(--muted);font-size:9px;font-weight:750;letter-spacing:.07em;text-transform:uppercase}
.admin-page-release strong{min-width:0;color:var(--strong);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Overview / dashboard */
.admin-command-center{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:18px clamp(20px,2.5vw,36px) 12px;
}
.admin-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:9px;min-width:0}
.admin-overview-grid article{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:3px;
  min-width:0;
  min-height:88px;
  padding:13px 14px 12px;
  overflow:hidden;
  border:1px solid var(--admin-line);
  border-radius:13px;
  background:linear-gradient(145deg,var(--admin-surface),var(--admin-surface-raised));
  box-shadow:0 8px 24px color-mix(in srgb,#000 6%,transparent);
}
.admin-overview-grid article::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:2px;
  background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 58%,transparent),transparent 82%);
}
.admin-overview-grid article>span{color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.admin-overview-grid article>strong{align-self:end;min-width:0;color:var(--strong);font-size:17px;font-weight:800;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-overview-grid article>small{min-width:0;color:var(--muted);font-size:10px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-overview-grid .is-good{color:var(--success,#57f287)!important}
.admin-overview-grid .is-warning{color:var(--warning,#f0b232)!important}
.admin-quick-actions{display:grid;gap:7px;min-width:165px}
.settings-content .admin-quick-actions>button{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  min-height:34px;
  margin:0!important;
  padding:6px 10px;
  border-color:var(--admin-line)!important;
  background:var(--admin-surface-raised)!important;
  text-align:left;
}
.admin-quick-actions .app-icon{width:14px;height:14px;flex:none}

/* Core workspace */
.admin-workspace{
  display:grid;
  grid-template-columns:minmax(226px,248px) minmax(0,1fr);
  align-items:start;
  gap:16px;
  min-width:0;
  padding:4px clamp(20px,2.5vw,36px) 84px;
}
.admin-workspace-sidebar{
  position:sticky;
  top:110px;
  z-index:12;
  display:grid;
  align-content:start;
  gap:12px;
  max-height:calc(100dvh - 150px);
  min-width:0;
  padding:12px;
  overflow:auto;
  overscroll-behavior:contain;
  border:1px solid var(--admin-line);
  border-radius:14px;
  background:color-mix(in srgb,var(--admin-surface) 96%,transparent);
  box-shadow:0 10px 28px color-mix(in srgb,#000 7%,transparent);
  scrollbar-width:thin;
}
.admin-sidebar-head{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;padding:2px 2px 1px}
.admin-sidebar-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--accent) 14%,var(--input));color:var(--accent)}
.admin-sidebar-mark .app-icon{width:17px;height:17px}
.admin-sidebar-head>div{display:grid;gap:1px;min-width:0}
.admin-sidebar-head strong{color:var(--strong);font-size:12px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-sidebar-head small{color:var(--muted);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-workspace-search{position:relative;display:grid;gap:4px;min-width:0}
.admin-workspace-search-icon{position:absolute;top:10px;left:10px;z-index:1;display:grid;place-items:center;width:15px;height:15px;color:var(--muted);pointer-events:none}
.admin-workspace-search-icon .app-icon{width:15px;height:15px}
.settings-content .admin-workspace-search .field{min-height:36px;padding-left:33px;border-radius:9px;background:var(--admin-surface-soft)}
.admin-settings-search-state{min-height:13px;padding:0 3px;color:var(--muted);font-size:9px;line-height:1.3}
.admin-section-select-wrap{display:none}
.admin-section-nav{position:static;display:grid;gap:10px;min-width:0;padding:0;border:0;background:transparent;overflow:visible}
.admin-nav-group{display:grid;gap:3px;min-width:0}
.admin-nav-group-label{padding:5px 8px 3px;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.105em;text-transform:uppercase}
.admin-section-nav button{
  position:relative;
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  align-items:center;
  gap:8px;
  width:100%;
  min-height:38px;
  padding:5px 8px;
  border:1px solid transparent;
  border-radius:9px;
  background:transparent;
  color:var(--muted);
  font-size:11px;
  font-weight:750;
  text-align:left;
  cursor:pointer;
  transition:background .14s ease,color .14s ease,border-color .14s ease,transform .14s ease;
}
.admin-section-nav button:hover{border-color:var(--admin-line);background:var(--admin-surface-soft);color:var(--text)}
.admin-section-nav button:active{transform:translateY(1px)}
.admin-section-nav button.active{border-color:color-mix(in srgb,var(--accent) 30%,var(--admin-line));background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 16%,var(--admin-surface-soft)),var(--admin-surface-soft));color:var(--strong);box-shadow:inset 2px 0 0 var(--accent)}
.admin-nav-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:color-mix(in srgb,var(--input) 88%,transparent);color:currentColor}
.admin-nav-icon .app-icon{width:14px;height:14px}
.admin-section-nav button.active .admin-nav-icon{background:color-mix(in srgb,var(--accent) 15%,var(--input));color:var(--accent)}

.admin-workspace-main{display:grid;gap:22px;min-width:0}
.admin-workspace-group{display:grid;gap:10px;min-width:0}
.admin-workspace-group[hidden],.admin-nav-group[hidden]{display:none!important}
.admin-workspace-group-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:2px 4px 0}
.admin-workspace-group-head>div{display:grid;gap:2px;min-width:0}
.admin-workspace-group-head span{color:var(--strong);font-size:13px;font-weight:850;letter-spacing:-.005em}
.admin-workspace-group-head p{margin:0;color:var(--muted);font-size:10px;line-height:1.4}
.admin-workspace-group-head>b{display:grid;place-items:center;min-width:23px;min-height:21px;padding:2px 7px;border:1px solid var(--admin-line);border-radius:999px;background:var(--admin-surface-soft);color:var(--muted);font-size:9px}

/* Cards / controls */
.settings-content .admin-workspace-card{
  display:grid;
  gap:13px;
  min-width:0;
  scroll-margin-top:112px;
  margin:0!important;
  padding:18px;
  border:1px solid var(--admin-line);
  border-radius:var(--admin-radius);
  background:linear-gradient(155deg,var(--admin-surface),color-mix(in srgb,var(--admin-surface-raised) 82%,var(--admin-surface)));
  box-shadow:0 10px 28px color-mix(in srgb,#000 5%,transparent);
}
.settings-content .admin-workspace-card>h3,
.settings-content .admin-workspace-card .admin-realtime-head h3{margin:0;color:var(--strong);font-size:15px;font-weight:820;line-height:1.2;letter-spacing:-.012em}
.admin-section-description{margin:-6px 0 2px!important;color:var(--muted)!important;font-size:10px!important;line-height:1.45!important}
.settings-content .admin-workspace-card>label:not(.app-switch-row),
.settings-content .admin-workspace-card .admin-livekit-fields>label:not(.app-switch-row),
.settings-content .admin-workspace-card .admin-update-policy>label:not(.app-switch-row){display:grid;gap:6px;min-width:0;color:var(--text);font-size:11px;font-weight:750}
.settings-content .admin-workspace-card label>small{color:var(--muted);font-size:10px;font-weight:450;line-height:1.45}
.settings-content .admin-workspace-card .field{
  width:100%;
  min-height:39px;
  border:1px solid var(--admin-line-strong);
  border-radius:9px;
  background:color-mix(in srgb,var(--input) 88%,var(--panel));
  color:var(--text);
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 3%,transparent);
  transition:border-color .14s ease,box-shadow .14s ease,background .14s ease;
}
.settings-content .admin-workspace-card textarea.field{min-height:84px;padding-block:9px;resize:vertical}
.settings-content .admin-workspace-card .field:hover{border-color:color-mix(in srgb,var(--muted) 54%,var(--admin-line-strong))}
.settings-content .admin-workspace-card .field:focus{border-color:color-mix(in srgb,var(--accent) 72%,var(--admin-line-strong));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent);outline:0}
.settings-content .admin-workspace-card>.app-switch-row,
.settings-content .admin-workspace-card .admin-update-policy>.app-switch-row,
.settings-content .admin-workspace-card .admin-livekit-fields>.app-switch-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-width:0;
  min-height:58px;
  padding:10px 11px;
  border:1px solid var(--admin-line);
  border-radius:10px;
  background:color-mix(in srgb,var(--admin-surface-soft) 64%,transparent);
  transition:background .14s ease,border-color .14s ease;
}
.settings-content .admin-workspace-card .app-switch-row:hover{border-color:color-mix(in srgb,var(--accent) 20%,var(--admin-line));background:var(--admin-surface-soft)}
.settings-content .admin-workspace-card .app-switch-row>span{display:grid;gap:2px;min-width:0}
.settings-content .admin-workspace-card .app-switch-row strong{color:var(--text);font-size:11px;font-weight:780}
.settings-content .admin-workspace-card .app-switch-row small{color:var(--muted);font-size:10px;line-height:1.4}
.settings-content .admin-workspace-card .app-switch-row>input[type="checkbox"]{flex:none}
.admin-number-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.admin-number-grid label{display:grid;gap:6px;min-width:0;color:var(--text);font-size:10px;font-weight:750}
.admin-livekit-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.admin-livekit-fields>.app-switch-row{grid-column:1/-1}
.admin-livekit-fields.disabled{opacity:.55}
.admin-livekit-fields.disabled::before{display:none}

/* Section-specific responsive information density */
#admin-section-general{grid-template-columns:minmax(220px,.85fr) minmax(0,1.15fr)}
#admin-section-general>h3,#admin-section-general>.admin-section-description{grid-column:1/-1}
#admin-section-access{grid-template-columns:repeat(2,minmax(0,1fr))}
#admin-section-access>h3,#admin-section-access>.admin-section-description,#admin-section-access>label:not(.app-switch-row){grid-column:1/-1}
#admin-section-spotify{grid-template-columns:repeat(2,minmax(0,1fr))}
#admin-section-spotify>h3,#admin-section-spotify>.admin-section-description,#admin-section-spotify>.settings-help,#admin-section-spotify>.app-switch-row{grid-column:1/-1}
#admin-section-ai{grid-template-columns:repeat(2,minmax(0,1fr))}
#admin-section-ai>h3,#admin-section-ai>.admin-section-description,#admin-section-ai>.app-switch-row,#admin-section-ai>label:has(textarea){grid-column:1/-1}
#admin-section-users .admin-feature-search{max-width:460px}

/* Update / restore control center */
.admin-update-settings{gap:14px!important}
.admin-operation-live{
  display:grid;
  gap:11px;
  margin:0;
  padding:15px;
  overflow:hidden;
  border:1px solid var(--admin-line);
  border-radius:12px;
  background:linear-gradient(140deg,color-mix(in srgb,var(--input) 72%,var(--panel)),var(--admin-surface));
}
.admin-operation-live[data-state="running"],.admin-operation-live[data-state="recovering"]{border-color:color-mix(in srgb,var(--accent) 48%,var(--admin-line));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 8%,transparent)}
.admin-operation-live[data-state="completed"]{border-color:color-mix(in srgb,var(--success,#57f287) 45%,var(--admin-line))}
.admin-operation-live[data-state="failed"]{border-color:color-mix(in srgb,var(--danger,#fa777c) 52%,var(--admin-line))}
.admin-operation-live-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.admin-operation-live-title{display:flex;align-items:flex-start;gap:9px;min-width:0}
.admin-operation-live-title>div{display:grid;gap:2px;min-width:0}
.admin-operation-live-title strong{color:var(--strong);font-size:12px}
.admin-operation-live-title small{color:var(--muted);font-size:10px;line-height:1.4}
.admin-operation-pulse{flex:0 0 auto;width:9px;height:9px;margin-top:4px;border-radius:50%;background:var(--muted)}
.admin-operation-live[data-state="running"] .admin-operation-pulse,.admin-operation-live[data-state="recovering"] .admin-operation-pulse{background:var(--accent);animation:admin-operation-pulse 1.5s ease-out infinite}
.admin-operation-live[data-state="completed"] .admin-operation-pulse{background:var(--success,#57f287)}
.admin-operation-live[data-state="failed"] .admin-operation-pulse{background:var(--danger,#fa777c)}
@keyframes admin-operation-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 40%,transparent)}70%{box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 0%,transparent)}100%{box-shadow:0 0 0 0 transparent}}
.admin-operation-state{flex:none;display:inline-flex;align-items:center;min-height:23px;padding:2px 8px;border-radius:999px;background:var(--admin-surface-raised);color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.05em;text-transform:uppercase}
.admin-operation-live[data-state="running"] .admin-operation-state{background:color-mix(in srgb,var(--accent) 15%,var(--panel));color:var(--accent)}
.admin-operation-live[data-state="recovering"] .admin-operation-state{background:color-mix(in srgb,var(--warning,#f0b232) 15%,var(--panel));color:var(--warning,#f0b232)}
.admin-operation-live[data-state="completed"] .admin-operation-state{background:color-mix(in srgb,var(--success,#57f287) 14%,var(--panel));color:var(--success,#57f287)}
.admin-operation-live[data-state="failed"] .admin-operation-state{background:color-mix(in srgb,var(--danger,#fa777c) 14%,var(--panel));color:var(--danger,#fa777c)}
.admin-operation-progress{position:relative;height:8px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--border) 66%,var(--panel))}
.admin-operation-progress>span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 64%,#fff));transition:width .28s ease}
.admin-operation-live[data-state="recovering"] .admin-operation-progress>span{background:var(--warning,#f0b232)}
.admin-operation-live[data-state="completed"] .admin-operation-progress>span{background:var(--success,#57f287)}
.admin-operation-live[data-state="failed"] .admin-operation-progress>span{background:var(--danger,#fa777c)}
.admin-operation-current{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.admin-operation-current>div{display:grid;gap:3px;min-width:0}
.admin-operation-current strong{color:var(--text);font-size:12px}
.admin-operation-current p{margin:0;color:var(--muted);font-size:10px;line-height:1.4;overflow-wrap:anywhere}
.admin-operation-percent{flex:none;color:var(--strong);font-size:20px;line-height:1;font-variant-numeric:tabular-nums}
.admin-operation-meta{display:flex;flex-wrap:wrap;gap:5px}
.admin-operation-meta span{padding:3px 6px;border-radius:6px;background:var(--admin-surface-raised);color:var(--muted);font-size:9px;overflow-wrap:anywhere}
.admin-operation-history{display:flex;gap:6px;overflow-x:auto;scrollbar-width:thin}
.admin-operation-history span{display:inline-flex;align-items:center;gap:5px;flex:none;color:var(--muted);font-size:9px;white-space:nowrap}
.admin-operation-history i{width:6px;height:6px;border-radius:50%;background:var(--accent)}
.admin-operation-history .is-complete i{background:var(--success,#57f287)}
.admin-operation-history .is-failed i{background:var(--danger,#fa777c)}
.admin-operation-live.stream-reconnecting .admin-operation-pulse{background:var(--warning,#f0b232)}
.admin-update-policy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:13px;border:1px solid var(--admin-line);border-radius:12px;background:color-mix(in srgb,var(--admin-surface-soft) 58%,transparent)}
.admin-update-policy>.admin-subsection-head,.admin-update-policy>.admin-versioning-guide{grid-column:1/-1}
.admin-subsection-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.admin-subsection-head>div{display:grid;gap:2px}
.admin-subsection-head strong{color:var(--strong);font-size:11px}
.admin-subsection-head small{color:var(--muted);font-size:9px;line-height:1.4}
.admin-update-workspace-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);align-items:start;gap:12px}
.admin-update-package,.admin-update-backups,.admin-update-zip-stage{border-color:var(--admin-line);border-radius:12px;background:color-mix(in srgb,var(--admin-surface-soft) 64%,var(--admin-surface));box-shadow:none}
.admin-update-package-head{gap:10px}
.admin-update-package-head strong{font-size:12px}
.admin-update-package-head small{font-size:10px}
.admin-update-backup-list{max-height:410px}
.admin-update-actions{position:sticky;bottom:-1px;z-index:2;padding-top:9px;background:linear-gradient(180deg,transparent,var(--admin-surface) 38%)}

/* Database / realtime / user administration */
.admin-database-backup-toolbar{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:7px;min-width:0}
.settings-content .admin-database-backup-toolbar>button{min-height:35px;margin:0!important}
.admin-database-backup-list{max-height:450px}
.admin-database-backup-row,.admin-update-backup-row{border-color:var(--admin-line);border-radius:10px;background:var(--admin-surface-soft)}
.admin-database-backup-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px}
.admin-realtime-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;min-width:0}
.admin-realtime-head>div{min-width:0;flex:1 1 auto}
.admin-realtime-head .settings-help{margin:3px 0 0}
.admin-realtime-refresh{margin:0!important;flex:none}
.admin-realtime-status{min-height:20px;color:var(--muted);font-size:10px;line-height:1.45}
.admin-realtime-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:8px}
.admin-realtime-metric{display:flex;flex-direction:column;gap:4px;min-width:0;padding:11px 12px;border:1px solid var(--admin-line);border-radius:10px;background:var(--admin-surface-soft);overflow:hidden}
.admin-realtime-metric small,.admin-realtime-metric span{color:var(--muted);font-size:9px;line-height:1.35;overflow-wrap:anywhere}
.admin-realtime-metric strong{color:var(--strong);font-size:17px;line-height:1.15;overflow-wrap:anywhere}
.admin-realtime-stream-list{display:grid;gap:7px}
.admin-realtime-stream-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.admin-realtime-stream-title strong{color:var(--strong);font-size:11px}
.admin-realtime-stream-title small{color:var(--muted);font-size:9px;text-align:right}
.admin-realtime-stream-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,1.45fr);align-items:center;gap:12px;padding:10px 11px;border:1px solid var(--admin-line);border-radius:10px;background:var(--admin-surface-soft)}
.admin-realtime-stream-row>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.admin-realtime-stream-row>div:first-child strong,.admin-realtime-stream-row>div:first-child small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-realtime-stream-row>div:first-child small{color:var(--muted);font-size:9px}
.admin-realtime-stream-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.admin-realtime-stream-values span{display:flex;flex-direction:column;align-items:flex-end;gap:1px;color:var(--muted);font-size:8px}
.admin-realtime-stream-values b{max-width:100%;color:var(--strong);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-user-feature-list{display:grid;gap:8px;max-height:540px;overflow:auto;overscroll-behavior:contain;padding-right:3px;scrollbar-width:thin}
.admin-user-feature-row{display:grid;grid-template-columns:auto minmax(170px,.8fr) minmax(230px,1.2fr);align-items:center;gap:12px;padding:11px;border:1px solid var(--admin-line);border-radius:11px;background:var(--admin-surface-soft)}
.admin-user-feature-row:hover{border-color:color-mix(in srgb,var(--accent) 24%,var(--admin-line));background:color-mix(in srgb,var(--accent) 4%,var(--admin-surface-soft))}
.admin-user-feature-row>.avatar{width:38px;height:38px;min-width:38px}
.server-admin-toggle{grid-column:auto!important}
.server-admin-entitlements{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.server-admin-entitlements span{font-size:8px}

/* Unsaved changes belong to the administration workspace, not the modal viewport edge. */
.administration-settings-content>.settings-unsaved-bar{
  position:sticky!important;
  left:auto!important;
  right:auto!important;
  bottom:12px!important;
  z-index:25;
  width:min(760px,calc(100% - 40px));
  margin:20px auto 0!important;
  border:1px solid color-mix(in srgb,var(--accent) 34%,var(--admin-line));
  border-radius:12px;
  box-shadow:0 16px 44px rgba(0,0,0,.28);
}
.administration-settings-content.has-unsaved-changes{padding-bottom:8px!important}

/* Focus and motion */
.modal-administration :is(button,a,input,select,textarea):focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 76%,#fff);outline-offset:2px}

@media(max-width:1220px){
  .admin-command-center{grid-template-columns:1fr}
  .admin-quick-actions{display:flex;min-width:0}
  .settings-content .admin-quick-actions>button{flex:1 1 160px;justify-content:center}
  .admin-workspace{grid-template-columns:minmax(205px,220px) minmax(0,1fr)}
  .admin-update-workspace-grid{grid-template-columns:1fr}
  .admin-number-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:980px){
  .settings-content .admin-page-head.admin-page-hero{position:relative;top:auto}
  .admin-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-workspace{grid-template-columns:1fr;gap:12px}
  .admin-workspace-sidebar{position:sticky;top:0;z-index:18;display:grid;grid-template-columns:minmax(180px,1fr) minmax(240px,1.2fr);align-items:start;gap:8px;max-height:none;padding:9px;overflow:visible;border-radius:12px;background:color-mix(in srgb,var(--admin-surface) 96%,transparent);backdrop-filter:blur(16px)}
  .admin-sidebar-head{display:none}
  .admin-workspace-search{grid-column:1}
  .admin-settings-search-state{display:none}
  .admin-section-nav{grid-column:2;display:flex;gap:5px;min-width:0;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}
  .admin-nav-group{display:flex;gap:5px;flex:none}
  .admin-nav-group-label{display:none}
  .admin-section-nav button{display:flex;width:auto;min-width:max-content;min-height:36px;padding:4px 8px;box-shadow:none}
  .admin-section-nav button.active{box-shadow:inset 0 -2px 0 var(--accent)}
  .admin-nav-icon{width:25px;height:25px}
  .settings-content .admin-workspace-card{scroll-margin-top:68px}
  #admin-section-general,#admin-section-access,#admin-section-spotify,#admin-section-ai{grid-template-columns:1fr}
  #admin-section-general>h3,#admin-section-general>.admin-section-description,#admin-section-access>h3,#admin-section-access>.admin-section-description,#admin-section-access>label:not(.app-switch-row),#admin-section-spotify>h3,#admin-section-spotify>.admin-section-description,#admin-section-spotify>.settings-help,#admin-section-spotify>.app-switch-row,#admin-section-ai>h3,#admin-section-ai>.admin-section-description,#admin-section-ai>.app-switch-row,#admin-section-ai>label:has(textarea){grid-column:auto}
  .admin-user-feature-row{grid-template-columns:auto minmax(0,1fr)}
  .server-admin-toggle{grid-column:1/-1!important}
}
@media(max-width:700px){
  .modal-backdrop>.modal.modal-settings.modal-administration{width:100vw!important;height:100dvh!important;border:0!important;border-radius:0!important}
  .settings-content .admin-page-head.admin-page-hero{grid-template-columns:1fr;padding:14px 12px 12px!important}
  .admin-page-head p{font-size:11px}
  .admin-page-actions{justify-content:space-between}
  .settings-content .admin-back-user-settings{flex:1 1 auto;justify-content:flex-start}
  .admin-page-release{flex:0 1 auto;min-width:0;max-width:50%;padding:7px 9px}
  .admin-command-center{padding:12px 10px 8px}
  .admin-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .admin-overview-grid article{min-height:76px;padding:10px 11px}
  .admin-quick-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}
  .settings-content .admin-quick-actions>button{justify-content:center;min-width:0;padding-inline:7px;font-size:10px}
  .admin-workspace{padding:2px 10px 72px}
  .admin-workspace-sidebar{grid-template-columns:1fr;top:0;padding:8px}
  .admin-workspace-search{grid-column:auto}
  .admin-section-nav{display:none}
  .admin-section-select-wrap{display:grid;gap:4px;min-width:0;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
  .settings-content .admin-section-select{min-height:38px;border-radius:9px;background:var(--admin-surface-soft)}
  .settings-content .admin-workspace-card{scroll-margin-top:104px;padding:13px;border-radius:12px;box-shadow:none}
  .admin-workspace-group{gap:8px}
  .admin-workspace-group-head{padding-inline:2px}
  .admin-workspace-group-head p{display:none}
  .admin-number-grid,.admin-livekit-fields,.admin-update-policy{grid-template-columns:1fr}
  .admin-livekit-fields>.app-switch-row,.admin-update-policy>.admin-subsection-head,.admin-update-policy>.admin-versioning-guide{grid-column:auto}
  .admin-operation-live-head,.admin-operation-current{align-items:stretch;flex-direction:column}
  .admin-operation-state{align-self:flex-start}
  .admin-update-actions{position:static;background:none}
  .admin-database-backup-row,.admin-update-backup-row{grid-template-columns:1fr}
  .admin-database-backup-actions{justify-content:stretch}
  .admin-database-backup-actions>a,.admin-database-backup-actions>button{flex:1 1 120px;text-align:center}
  .admin-realtime-head{align-items:stretch;flex-direction:column}
  .admin-realtime-refresh{width:100%}
  .admin-realtime-stream-row{grid-template-columns:1fr}
  .admin-realtime-stream-values span{align-items:flex-start}
  .admin-user-feature-row{grid-template-columns:auto minmax(0,1fr);padding:9px}
  .administration-settings-content>.settings-unsaved-bar{width:calc(100% - 20px);bottom:8px!important}
}
@media(max-width:480px){
  .admin-page-actions{align-items:stretch;flex-direction:column-reverse}
  .admin-page-release{width:100%;max-width:none;text-align:left}
  .admin-overview-grid{grid-template-columns:1fr}
  .admin-quick-actions{grid-template-columns:1fr}
  .settings-content .admin-quick-actions>button{justify-content:flex-start}
  .admin-realtime-stream-values{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-realtime-stream-values span{align-items:flex-start}
  .admin-user-feature-row{grid-template-columns:1fr}
  .admin-user-feature-row>.avatar{display:none}
}
@media(prefers-reduced-motion:reduce){
  .admin-section-nav button,.settings-content .admin-workspace-card .field,.settings-content .admin-workspace-card .app-switch-row,.admin-operation-progress>span{transition:none!important}
  .admin-operation-pulse{animation:none!important}
}


/* v1.7.1.21 — Administration is a first-class application surface. */
.server-btn.administration{position:relative;color:color-mix(in srgb,var(--text) 88%,var(--muted))}
.server-btn.administration:hover,.server-btn.administration.active{background:linear-gradient(145deg,var(--accent),color-mix(in srgb,var(--accent) 72%,#8b7cff));color:#fff}
.server-btn.administration .app-icon{width:21px;height:21px}

.shell.administration-surface{
  grid-template-columns:72px minmax(0,1fr)!important;
  grid-template-rows:48px minmax(0,1fr)!important;
  grid-template-areas:"rail header" "rail main"!important;
}
.shell.administration-surface>.sidebar,
.shell.administration-surface>.sidebar-resizer,
.shell.administration-surface>.members{display:none!important}
.shell.administration-surface>.main{min-width:0;overflow:hidden;background:var(--bg)}
.shell.administration-surface>.header{min-width:0;padding-inline:18px;background:color-mix(in srgb,var(--top) 96%,var(--bg));border-bottom:1px solid color-mix(in srgb,var(--border) 72%,transparent);box-shadow:none}
.shell.administration-surface>.header .head-title{font-size:15px;font-weight:800}
.shell.administration-surface>.header .topic{font-size:12px}
.shell.administration-surface>.header .search,
.shell.administration-surface>.header .member-toggle,
.shell.administration-surface>.header .group-files-toggle,
.shell.administration-surface>.header .dm-games-toggle{display:none!important}

.administration-page-root{
  --admin-surface:color-mix(in srgb,var(--panel) 96%,var(--bg));
  --admin-surface-raised:color-mix(in srgb,var(--panel) 87%,var(--input));
  --admin-surface-soft:color-mix(in srgb,var(--input) 64%,var(--panel));
  --admin-line:color-mix(in srgb,var(--border) 84%,transparent);
  --admin-line-strong:color-mix(in srgb,var(--border) 67%,var(--text));
  --admin-radius:15px;
  width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;
  background:
    radial-gradient(circle at 7% -12%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 34rem),
    linear-gradient(180deg,color-mix(in srgb,var(--bg) 35%,var(--admin-surface)),var(--admin-surface) 300px);
}
.administration-page-root .administration-standalone-shell{display:block!important;width:100%;height:100%;min-width:0;min-height:0;background:transparent!important}
.administration-page-root .administration-settings-content{
  width:100%;height:100%;max-width:none!important;min-width:0;min-height:0;
  padding:0!important;overflow:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable;
  background:transparent!important;
}
.administration-page-root .administration-settings-content>*{width:min(1580px,100%);max-width:1580px!important;margin-inline:auto;box-sizing:border-box}
.administration-page-root :is(button,a,input,select,textarea):focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 78%,#fff);outline-offset:2px}

/* More readable hierarchy than the former modal-oriented density. */
.administration-page-root .admin-page-head.admin-page-hero{min-height:104px;padding:22px clamp(24px,3vw,44px)!important;background:color-mix(in srgb,var(--admin-surface) 95%,transparent)}
.administration-page-root .admin-page-eyebrow{font-size:11px;letter-spacing:.115em}
.administration-page-root .admin-page-head h2{font-size:clamp(25px,2.15vw,32px)}
.administration-page-root .admin-page-head p{max-width:860px;font-size:13px;line-height:1.55}
.administration-page-root .admin-page-release{min-width:190px;padding:10px 13px}
.administration-page-root .admin-page-release small{font-size:10px}
.administration-page-root .admin-page-release strong{font-size:13px}
.administration-page-root .admin-command-center{gap:16px;padding:20px clamp(24px,3vw,44px) 15px}
.administration-page-root .admin-overview-grid{gap:11px}
.administration-page-root .admin-overview-grid article{min-height:98px;padding:15px 16px 14px}
.administration-page-root .admin-overview-grid article>span{font-size:10px}
.administration-page-root .admin-overview-grid article>strong{font-size:19px}
.administration-page-root .admin-overview-grid article>small{font-size:11px}
.administration-page-root .admin-quick-actions{min-width:190px;gap:8px}
.administration-page-root .admin-quick-actions>button{min-height:39px!important;padding:8px 12px!important;font-size:12px}

.administration-page-root .admin-workspace{grid-template-columns:minmax(252px,276px) minmax(0,1fr);gap:20px;padding:5px clamp(24px,3vw,44px) 96px}
.administration-page-root .admin-workspace-sidebar{top:122px;gap:14px;max-height:calc(100dvh - 185px);padding:14px;border-radius:15px}
.administration-page-root .admin-sidebar-head{grid-template-columns:38px minmax(0,1fr);gap:10px}
.administration-page-root .admin-sidebar-mark{width:38px;height:38px}
.administration-page-root .admin-sidebar-head strong{font-size:13px}
.administration-page-root .admin-sidebar-head small{font-size:10px}
.administration-page-root .admin-settings-search-state{font-size:10px}
.administration-page-root .admin-nav-group{gap:4px}
.administration-page-root .admin-nav-group-label{padding:7px 9px 4px;font-size:9px}
.administration-page-root .admin-section-nav button{grid-template-columns:30px minmax(0,1fr);gap:9px;min-height:42px;padding:6px 9px;border-radius:10px;font-size:12.5px}
.administration-page-root .admin-nav-icon{width:30px;height:30px}
.administration-page-root .admin-nav-icon .app-icon{width:15px;height:15px}

.administration-page-root .admin-workspace-main{gap:28px}
.administration-page-root .admin-workspace-group{gap:12px}
.administration-page-root .admin-workspace-group-head{padding:2px 5px 1px}
.administration-page-root .admin-workspace-group-head span{font-size:15px}
.administration-page-root .admin-workspace-group-head p{font-size:11.5px;line-height:1.5}
.administration-page-root .admin-workspace-group-head>b{min-width:27px;min-height:24px;font-size:10px}
.administration-page-root .admin-workspace-card{gap:15px;padding:20px;border-radius:15px;box-shadow:0 12px 32px color-mix(in srgb,#000 7%,transparent)}
.administration-page-root .admin-workspace-card>h3,
.administration-page-root .admin-workspace-card .admin-realtime-head h3{font-size:17px;line-height:1.25}
.administration-page-root .admin-section-description{margin:-5px 0 3px!important;font-size:12px!important;line-height:1.55!important}
.administration-page-root .admin-workspace-card>label:not(.app-switch-row),
.administration-page-root .admin-workspace-card .admin-livekit-fields>label:not(.app-switch-row),
.administration-page-root .admin-workspace-card .admin-update-policy>label:not(.app-switch-row){gap:7px;font-size:12px}
.administration-page-root .admin-workspace-card label>small,
.administration-page-root .admin-workspace-card .settings-help{font-size:11px;line-height:1.55}
.administration-page-root .admin-workspace-card .field{min-height:42px;padding:10px 11px;font-size:13px}
.administration-page-root .admin-workspace-card textarea.field{min-height:94px}
.administration-page-root .admin-workspace-card>.app-switch-row,
.administration-page-root .admin-workspace-card .admin-update-policy>.app-switch-row,
.administration-page-root .admin-workspace-card .admin-livekit-fields>.app-switch-row{min-height:64px;padding:12px 13px}
.administration-page-root .admin-workspace-card .app-switch-row strong{font-size:12.5px}
.administration-page-root .admin-workspace-card .app-switch-row small{font-size:11px;line-height:1.5}
.administration-page-root .admin-number-grid label{font-size:11.5px}
.administration-page-root .admin-realtime-status{font-size:11px}
.administration-page-root .admin-realtime-metric{padding:13px 14px}
.administration-page-root .admin-realtime-metric small,
.administration-page-root .admin-realtime-metric span{font-size:10px}
.administration-page-root .admin-realtime-metric strong{font-size:19px}
.administration-page-root .admin-realtime-stream-title strong{font-size:12px}
.administration-page-root .admin-realtime-stream-title small{font-size:10px}
.administration-page-root .admin-realtime-stream-row>div:first-child small{font-size:10px}
.administration-page-root .admin-realtime-stream-values span{font-size:9px}
.administration-page-root .admin-realtime-stream-values b{font-size:12px}
.administration-page-root .server-admin-entitlements span{font-size:9px}
.administration-page-root .admin-operation-live-title strong,
.administration-page-root .admin-operation-current strong,
.administration-page-root .admin-update-package-head strong{font-size:13px}
.administration-page-root .admin-operation-live-title small,
.administration-page-root .admin-operation-current p,
.administration-page-root .admin-update-package-head small{font-size:11px}
.administration-page-root .admin-operation-state,
.administration-page-root .admin-operation-meta span,
.administration-page-root .admin-operation-history span{font-size:10px}
.administration-page-root .admin-subsection-head strong{font-size:12px}
.administration-page-root .admin-subsection-head small{font-size:10.5px}
.administration-page-root .administration-settings-content>.settings-unsaved-bar{width:min(820px,calc(100% - 48px));bottom:16px!important}

.administration-boot-skeleton{display:grid;grid-template-columns:250px minmax(0,1fr);gap:20px;width:min(1500px,calc(100% - 48px));margin:28px auto;min-height:420px}
.administration-boot-skeleton span{display:block;border-radius:16px;background:linear-gradient(100deg,color-mix(in srgb,var(--panel) 92%,var(--bg)) 20%,color-mix(in srgb,var(--input) 78%,var(--panel)) 45%,color-mix(in srgb,var(--panel) 92%,var(--bg)) 70%);background-size:220% 100%;animation:admin-boot-shimmer 1.25s linear infinite}
.administration-boot-skeleton span:first-child{grid-row:1/3;min-height:560px}.administration-boot-skeleton span:nth-child(2){min-height:150px}.administration-boot-skeleton span:nth-child(3){min-height:390px}
@keyframes admin-boot-shimmer{to{background-position:-220% 0}}

@media(max-width:1220px){
 .shell.administration-surface{grid-template-columns:64px minmax(0,1fr)!important}
 .administration-page-root .admin-workspace{grid-template-columns:minmax(224px,240px) minmax(0,1fr)}
}
@media(max-width:980px){
 .administration-page-root .admin-workspace{grid-template-columns:1fr;gap:14px}
 .administration-page-root .admin-workspace-sidebar{top:0;grid-template-columns:minmax(200px,.8fr) minmax(0,1.4fr);max-height:none;padding:10px}
 .administration-page-root .admin-section-nav button{min-height:38px;font-size:12px}
 .administration-page-root .admin-workspace-card{scroll-margin-top:76px}
}

/* v1.7.1.22 — Discord-style Administration rebuild. */
.shell.administration-surface{
  grid-template-columns:72px minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr)!important;
  grid-template-areas:"rail main"!important;
  background:var(--bg);
}
.shell.administration-surface>.header{display:none!important}
.shell.administration-surface>.main{grid-area:main;min-width:0;min-height:0;overflow:hidden;background:var(--bg)}
.shell.administration-surface>.rail{z-index:4}

.administration-page-root{
  --admin-sidebar-bg:var(--panel);
  --admin-content-bg:var(--bg);
  --admin-input-bg:var(--rail);
  --admin-hover:var(--hover);
  --admin-divider:color-mix(in srgb,var(--muted) 20%,transparent);
  --admin-subtle:color-mix(in srgb,var(--text) 8%,transparent);
  --admin-card:color-mix(in srgb,var(--panel) 68%,var(--bg));
  --admin-positive:var(--green,#23a55a);
  --admin-warning:var(--yellow,#f0b232);
  width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;background:var(--admin-content-bg)!important;
}
.administration-page-root .administration-standalone-shell,
.administration-page-root .administration-settings-content{width:100%;height:100%;min-width:0;min-height:0;max-width:none!important;padding:0!important;margin:0!important;overflow:hidden!important;background:transparent!important}
.administration-page-root .administration-settings-content>*{width:auto;max-width:none!important;margin:0;box-sizing:border-box}
.administration-page-root .admin-discord-shell{display:grid!important;grid-template-columns:248px minmax(0,1fr);width:100%;height:100%;min-width:0;min-height:0;padding:0!important;gap:0!important;background:var(--admin-content-bg)}

/* Discord-like category rail */
.administration-page-root .admin-discord-sidebar{
  position:relative!important;top:auto!important;display:flex!important;flex-direction:column;gap:0!important;width:auto;max-height:none!important;min-width:0;min-height:0;
  padding:28px 8px 16px 20px!important;border:0!important;border-radius:0!important;background:var(--admin-sidebar-bg)!important;box-shadow:none!important;overflow:hidden;
}
.administration-page-root .admin-sidebar-top{display:flex;align-items:center;gap:8px;padding:0 10px 14px 8px;min-height:50px}
.administration-page-root .admin-sidebar-head{display:grid!important;grid-template-columns:36px minmax(0,1fr)!important;align-items:center;gap:10px!important;min-width:0;flex:1}
.administration-page-root .admin-sidebar-mark{display:grid;place-items:center;width:36px!important;height:36px!important;border-radius:12px;background:var(--accent);color:#fff;box-shadow:none}
.administration-page-root .admin-sidebar-mark .app-icon{width:19px;height:19px}
.administration-page-root .admin-sidebar-head>div{display:grid;gap:1px;min-width:0}
.administration-page-root .admin-sidebar-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--strong);font-size:14px!important;font-weight:800;line-height:18px}
.administration-page-root .admin-sidebar-head small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px!important;line-height:15px}
.administration-page-root .admin-sidebar-close{display:grid;place-items:center;flex:none;width:32px;height:32px;padding:0;border:1px solid color-mix(in srgb,var(--muted) 24%,transparent);border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}
.administration-page-root .admin-sidebar-close:hover{background:var(--admin-hover);color:var(--strong)}
.administration-page-root .admin-sidebar-close .app-icon{width:16px;height:16px}

.administration-page-root .admin-workspace-search{position:relative;display:grid!important;grid-template-columns:1fr;gap:4px!important;margin:0 10px 12px 8px;padding:0!important}
.administration-page-root .admin-workspace-search-icon{position:absolute;right:9px;top:50%;translate:0 -50%;display:grid;place-items:center;z-index:1;color:var(--muted);pointer-events:none}
.administration-page-root .admin-workspace-search-icon .app-icon{width:15px;height:15px}
.administration-page-root .admin-settings-search.field{height:32px!important;min-height:32px!important;padding:6px 32px 6px 9px!important;border:0!important;border-radius:4px!important;background:var(--admin-input-bg)!important;color:var(--text);font-size:12px!important;box-shadow:none!important}
.administration-page-root .admin-settings-search::placeholder{color:var(--muted)}
.administration-page-root .admin-settings-search-state{min-height:0!important;margin:0 2px;color:var(--muted);font-size:10px!important;line-height:14px}
.administration-page-root .admin-settings-search-state:empty{display:none}
.administration-page-root .admin-section-select-wrap{display:none}

.administration-page-root .admin-section-nav{flex:1;min-height:0;overflow:auto;padding:0 8px 16px 0;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 34%,transparent) transparent}
.administration-page-root .admin-nav-group{display:grid!important;gap:1px!important;margin:0 0 14px}
.administration-page-root .admin-nav-group[hidden]{display:none!important}
.administration-page-root .admin-nav-group-label{display:block;padding:0 10px 5px!important;color:var(--muted);font-size:11px!important;font-weight:800;line-height:16px;letter-spacing:.02em;text-transform:uppercase}
.administration-page-root .admin-section-nav button{display:grid!important;grid-template-columns:22px minmax(0,1fr)!important;align-items:center;gap:9px!important;width:100%;min-height:32px!important;margin:0;padding:6px 10px!important;border:0!important;border-radius:4px!important;background:transparent!important;color:var(--muted);font-size:14px!important;font-weight:500;text-align:left;cursor:pointer;transition:background .12s ease,color .12s ease}
.administration-page-root .admin-section-nav button:hover{background:var(--admin-hover)!important;color:var(--text)}
.administration-page-root .admin-section-nav button.active{background:var(--admin-hover)!important;color:var(--strong);font-weight:600}
.administration-page-root .admin-section-nav button[hidden]{display:none!important}
.administration-page-root .admin-nav-icon{display:grid;place-items:center;width:22px!important;height:22px!important;color:currentColor;background:transparent!important;border-radius:0!important}
.administration-page-root .admin-nav-icon .app-icon{width:16px!important;height:16px!important}

.administration-page-root .admin-sidebar-footer{display:grid;gap:8px;margin:0 10px 0 8px;padding-top:12px;border-top:1px solid var(--admin-divider)}
.administration-page-root .admin-user-settings-link{display:flex;align-items:center;gap:9px;width:100%;min-height:32px;padding:6px 10px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-size:13px;font-weight:600;text-align:left;cursor:pointer}
.administration-page-root .admin-user-settings-link:hover{background:var(--admin-hover);color:var(--strong)}
.administration-page-root .admin-user-settings-link .app-icon{width:16px;height:16px}
.administration-page-root .admin-sidebar-release{display:flex;align-items:center;gap:6px;padding:0 10px;color:var(--muted);font-size:10px}
.administration-page-root .admin-sidebar-release code{color:var(--text);font-size:10px}

/* Focused content pane */
.administration-page-root .admin-discord-content{display:block!important;min-width:0;min-height:0;overflow:auto!important;overscroll-behavior:contain;background:var(--admin-content-bg)!important;scrollbar-gutter:stable}
.administration-page-root .admin-discord-content-inner{width:min(980px,calc(100% - 64px));min-height:100%;margin:0 auto;padding:48px 0 112px}
.administration-page-root .admin-discord-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:0 0 26px;padding:0 0 20px;border-bottom:1px solid var(--admin-divider)}
.administration-page-root .admin-discord-section-head>div:first-child{min-width:0}
.administration-page-root .admin-discord-eyebrow{display:block;margin:0 0 5px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.administration-page-root .admin-discord-title{margin:0;color:var(--strong);font-size:20px;font-weight:800;line-height:24px}
.administration-page-root .admin-discord-description{max-width:720px;margin:6px 0 0;color:var(--muted);font-size:13px;line-height:19px}
.administration-page-root .admin-discord-head-actions{display:flex;align-items:center;gap:8px;flex:none}
.administration-page-root .admin-discord-release{display:flex;align-items:center;gap:7px;min-height:28px;padding:5px 9px;border-radius:4px;background:var(--admin-subtle);color:var(--muted);font-size:11px}
.administration-page-root .admin-discord-release i{width:7px;height:7px;border-radius:50%;background:var(--admin-positive)}
.administration-page-root .admin-discord-release code{color:var(--strong);font-size:10px}
.administration-page-root .admin-discord-stage{display:block;min-width:0}

/* Discord settings pages are flat; structure comes from spacing and dividers, not floating dashboard cards. */
.administration-page-root .admin-workspace-card{display:grid;gap:0!important;width:100%;min-width:0;max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;animation:admin-discord-page-in .14s ease-out}
.administration-page-root .admin-workspace-card[hidden]{display:none!important}
@keyframes admin-discord-page-in{from{opacity:.72;transform:translateY(3px)}to{opacity:1;transform:none}}
.administration-page-root .admin-workspace-card>:scope{min-width:0}
.administration-page-root .admin-workspace-card>:scope>h3,
.administration-page-root .admin-workspace-card>h3,
.administration-page-root .admin-workspace-card>.admin-section-description,
.administration-page-root .admin-workspace-card>.admin-realtime-head>div>h3,
.administration-page-root .admin-workspace-card>.admin-realtime-head>div>.settings-help{display:none!important}
.administration-page-root .admin-workspace-card>label:not(.app-switch-row),
.administration-page-root .admin-workspace-card>.admin-livekit-fields>label:not(.app-switch-row),
.administration-page-root .admin-update-policy>label:not(.app-switch-row),
.administration-page-root .spotify-admin-fields>label,
.administration-page-root .seek-ai-admin-settings>label{display:grid;gap:8px;margin:0 0 22px;color:var(--text);font-size:12px!important;font-weight:800;letter-spacing:.02em;text-transform:uppercase}
.administration-page-root .admin-workspace-card label>small,
.administration-page-root .admin-workspace-card .settings-help{margin:0;color:var(--muted);font-size:12px!important;font-weight:400;line-height:18px;text-transform:none;letter-spacing:0}
.administration-page-root .admin-workspace-card .field{min-height:40px!important;padding:10px!important;border:0!important;border-radius:4px!important;background:var(--admin-input-bg)!important;color:var(--strong)!important;font-size:14px!important;line-height:20px;box-shadow:inset 0 0 0 1px transparent!important;transition:box-shadow .12s ease,background .12s ease}
.administration-page-root .admin-workspace-card .field:hover{background:color-mix(in srgb,var(--admin-input-bg) 88%,var(--hover))!important}
.administration-page-root .admin-workspace-card .field:focus{box-shadow:inset 0 0 0 1px var(--accent)!important}
.administration-page-root .admin-workspace-card textarea.field{min-height:96px!important;resize:vertical}
.administration-page-root .admin-workspace-card code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}

/* Switches become Discord-style setting rows. */
.administration-page-root .admin-workspace-card>.app-switch-row,
.administration-page-root .admin-workspace-card .admin-livekit-fields>.app-switch-row,
.administration-page-root .admin-workspace-card .admin-update-policy>.app-switch-row,
.administration-page-root .admin-workspace-card .spotify-admin-settings>.app-switch-row,
.administration-page-root .admin-workspace-card .seek-ai-admin-settings>.app-switch-row{display:flex!important;align-items:flex-start;justify-content:space-between;gap:24px;min-height:0!important;margin:0!important;padding:16px 0!important;border:0!important;border-top:1px solid var(--admin-divider)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;text-transform:none}
.administration-page-root .admin-workspace-card>.app-switch-row:first-of-type{border-top:0!important}
.administration-page-root .admin-workspace-card .app-switch-row>span{display:grid;gap:3px;min-width:0;flex:1}
.administration-page-root .admin-workspace-card .app-switch-row strong{color:var(--strong);font-size:14px!important;font-weight:600;line-height:20px}
.administration-page-root .admin-workspace-card .app-switch-row small{color:var(--muted);font-size:12px!important;line-height:18px}
.administration-page-root .admin-workspace-card .app-switch-row input[type="checkbox"]{flex:none;margin-top:1px}

/* Flat sub-sections and grids. */
.administration-page-root .admin-number-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;margin:0}
.administration-page-root .admin-number-grid label{margin:0!important;font-size:12px!important}
.administration-page-root .admin-livekit-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin-top:18px;padding-top:20px;border-top:1px solid var(--admin-divider)}
.administration-page-root .admin-livekit-fields>.app-switch-row{grid-column:1/-1}
.administration-page-root #admin-section-general{grid-template-columns:minmax(0,1fr)!important}
.administration-page-root #admin-section-access,
.administration-page-root #admin-section-spotify,
.administration-page-root #admin-section-ai{grid-template-columns:minmax(0,1fr)!important}
.administration-page-root #admin-section-general>*,
.administration-page-root #admin-section-access>*,
.administration-page-root #admin-section-spotify>*,
.administration-page-root #admin-section-ai>*{grid-column:auto!important}

/* Overview */
.administration-page-root .admin-overview-section{gap:22px!important}
.administration-page-root .admin-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px!important;margin:0}
.administration-page-root .admin-overview-grid article{display:grid;gap:4px;align-content:start;min-height:112px!important;padding:16px!important;border:1px solid var(--admin-divider);border-radius:8px;background:var(--admin-card)!important;box-shadow:none!important}
.administration-page-root .admin-overview-grid article>span{color:var(--muted);font-size:11px!important;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.administration-page-root .admin-overview-grid article>strong{margin-top:2px;color:var(--strong);font-size:20px!important;line-height:24px}
.administration-page-root .admin-overview-grid article>strong.is-good{color:var(--admin-positive)}
.administration-page-root .admin-overview-grid article>strong.is-warning{color:var(--admin-warning)}
.administration-page-root .admin-overview-grid article>small{color:var(--muted);font-size:12px!important;line-height:17px}
.administration-page-root .admin-overview-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:2px}
.administration-page-root .admin-overview-actions>button{display:inline-flex;align-items:center;gap:8px;min-height:36px!important;margin:0!important;padding:8px 12px!important;border:0!important;border-radius:4px!important;background:var(--app-button-secondary-bg)!important;color:var(--app-button-secondary-text)!important;font-size:13px!important;font-weight:600;cursor:pointer}
.administration-page-root .admin-overview-actions>button:hover{background:var(--app-button-secondary-hover)!important}
.administration-page-root .admin-overview-actions .app-icon{width:16px;height:16px}

/* Operational pages keep rich data surfaces, but with Discord-like flat containment. */
.administration-page-root .admin-realtime-head{margin:0 0 18px;padding:0 0 16px;border-bottom:1px solid var(--admin-divider)}
.administration-page-root .admin-realtime-refresh{min-height:32px!important;margin:0!important}
.administration-page-root .admin-realtime-status{margin:0 0 14px;color:var(--muted);font-size:12px!important;line-height:18px}
.administration-page-root .admin-realtime-metrics{gap:8px}
.administration-page-root .admin-realtime-metric{padding:13px 14px!important;border:1px solid var(--admin-divider)!important;border-radius:6px!important;background:var(--admin-card)!important}
.administration-page-root .admin-realtime-metric small,
.administration-page-root .admin-realtime-metric span{font-size:10px!important}
.administration-page-root .admin-realtime-metric strong{font-size:18px!important}
.administration-page-root .admin-realtime-streams{margin-top:16px;border-top:1px solid var(--admin-divider);padding-top:16px}

.administration-page-root .admin-operation-live{margin:0 0 20px;padding:16px;border:1px solid var(--admin-divider);border-radius:8px;background:var(--admin-card)!important;box-shadow:none}
.administration-page-root .admin-operation-live-title strong,
.administration-page-root .admin-operation-current strong,
.administration-page-root .admin-update-package-head strong{font-size:13px!important}
.administration-page-root .admin-operation-live-title small,
.administration-page-root .admin-operation-current p,
.administration-page-root .admin-update-package-head small{font-size:11px!important}
.administration-page-root .admin-update-policy{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin:0 0 22px;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important}
.administration-page-root .admin-update-policy>.admin-subsection-head{grid-column:auto;padding:0 0 10px;border-bottom:1px solid var(--admin-divider)}
.administration-page-root .admin-update-policy>.admin-versioning-guide{grid-column:auto;margin:12px 0}
.administration-page-root .admin-update-workspace-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.administration-page-root .admin-update-package,
.administration-page-root .admin-update-backups,
.administration-page-root .admin-update-zip-stage{border:1px solid var(--admin-divider)!important;border-radius:8px!important;background:var(--admin-card)!important;box-shadow:none!important}
.administration-page-root .admin-update-actions{position:static!important;padding-top:12px!important;background:transparent!important}
.administration-page-root .admin-update-backup-list,
.administration-page-root .admin-database-backup-list{max-height:none!important}

.administration-page-root .admin-database-backup-toolbar{margin:0 0 16px;padding:0 0 16px;border-bottom:1px solid var(--admin-divider)}
.administration-page-root .admin-database-backup-row,
.administration-page-root .admin-update-backup-row{border:1px solid var(--admin-divider)!important;border-radius:6px!important;background:var(--admin-card)!important}
.administration-page-root .admin-user-features .admin-feature-search{max-width:420px;margin-bottom:14px}
.administration-page-root .admin-user-feature-row{border-color:var(--admin-divider)!important;background:transparent!important}
.administration-page-root .server-admin-entitlements span{font-size:10px!important}

/* Buttons */
.administration-page-root .admin-workspace-card .primary,
.administration-page-root .admin-workspace-card .secondary,
.administration-page-root .admin-workspace-card .danger-button{min-height:32px;border-radius:4px!important;font-size:13px;font-weight:600}
.administration-page-root .admin-workspace-card .secondary{background:var(--app-button-secondary-bg)!important;color:var(--app-button-secondary-text)!important;border:0!important}
.administration-page-root .admin-workspace-card .secondary:hover{background:var(--app-button-secondary-hover)!important}
.administration-page-root .admin-workspace-card .primary{background:var(--accent)!important;color:#fff!important}

/* Unsaved changes uses the familiar Discord bottom action bar. */
.administration-page-root .administration-settings-content>.settings-unsaved-bar{position:fixed!important;z-index:8;left:calc(72px + 248px + (100vw - 72px - 248px)/2);right:auto!important;bottom:22px!important;translate:-50% 0;width:min(720px,calc(100vw - 72px - 248px - 64px))!important;max-width:none!important;margin:0!important;padding:10px 12px!important;border:0!important;border-radius:5px!important;background:#111214!important;color:#fff!important;box-shadow:0 8px 24px #0007!important}

/* Light theme keeps the same Discord settings structure. */
:root[data-theme="light"] .administration-page-root{--admin-sidebar-bg:#e3e5e8;--admin-content-bg:#fff;--admin-input-bg:#ebedef;--admin-hover:#d4d7dc;--admin-divider:#d4d7dc;--admin-subtle:#f2f3f5;--admin-card:#f7f7f8}
:root[data-theme="light"] .administration-page-root .admin-workspace-card .secondary,
:root[data-theme="light"] .administration-page-root .admin-overview-actions>button{background:var(--app-button-secondary-bg)!important;color:var(--app-button-secondary-text)!important}

@media(max-width:1180px){
 .administration-page-root .admin-discord-shell{grid-template-columns:224px minmax(0,1fr)}
 .administration-page-root .admin-discord-content-inner{width:min(900px,calc(100% - 48px));padding-top:40px}
 .administration-page-root .administration-settings-content>.settings-unsaved-bar{left:calc(64px + 224px + (100vw - 64px - 224px)/2);width:min(700px,calc(100vw - 64px - 224px - 48px))!important}
}
@media(max-width:900px){
 .shell.administration-surface{grid-template-columns:64px minmax(0,1fr)!important}
 .administration-page-root .admin-discord-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
 .administration-page-root .admin-discord-sidebar{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(220px,.8fr);align-items:end;gap:10px!important;padding:12px 16px!important;border-bottom:1px solid var(--admin-divider)!important;overflow:visible}
 .administration-page-root .admin-sidebar-top{padding:0;min-height:36px}
 .administration-page-root .admin-sidebar-mark{width:32px!important;height:32px!important;border-radius:10px}
 .administration-page-root .admin-sidebar-head{grid-template-columns:32px minmax(0,1fr)!important}
 .administration-page-root .admin-workspace-search{display:none!important}
 .administration-page-root .admin-section-nav{display:none!important}
 .administration-page-root .admin-sidebar-footer{display:none}
 .administration-page-root .admin-section-select-wrap{display:grid;gap:4px;margin:0;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}
 .administration-page-root .admin-section-select{min-height:36px!important;padding:7px 10px!important;border:0!important;border-radius:4px!important;background:var(--admin-input-bg)!important;color:var(--strong);font-size:13px;text-transform:none}
 .administration-page-root .admin-discord-content-inner{width:min(840px,calc(100% - 36px));padding:28px 0 96px}
 .administration-page-root .admin-discord-section-head{margin-bottom:22px;padding-bottom:16px}
 .administration-page-root .admin-discord-release span{display:none}
 .administration-page-root .administration-settings-content>.settings-unsaved-bar{left:calc(64px + (100vw - 64px)/2);width:min(680px,calc(100vw - 64px - 32px))!important;bottom:16px!important}
}
@media(max-width:700px){
 .shell.administration-surface{grid-template-columns:minmax(0,1fr)!important;grid-template-areas:"main"!important}
 .shell.administration-surface>.rail{display:none!important}
 .administration-page-root .admin-discord-sidebar{grid-template-columns:minmax(0,1fr);padding:10px 12px!important}
 .administration-page-root .admin-sidebar-top{min-height:32px}
 .administration-page-root .admin-sidebar-close{display:grid}
 .administration-page-root .admin-discord-content-inner{width:calc(100% - 28px);padding:22px 0 92px}
 .administration-page-root .admin-discord-section-head{gap:12px;margin-bottom:18px}
 .administration-page-root .admin-discord-title{font-size:19px}
 .administration-page-root .admin-discord-description{font-size:12px;line-height:18px}
 .administration-page-root .admin-discord-head-actions{display:none}
 .administration-page-root .admin-overview-grid{grid-template-columns:minmax(0,1fr)}
 .administration-page-root .admin-number-grid,
 .administration-page-root .admin-livekit-fields{grid-template-columns:minmax(0,1fr)}
 .administration-page-root .admin-workspace-card>.app-switch-row,
 .administration-page-root .admin-workspace-card .admin-livekit-fields>.app-switch-row,
 .administration-page-root .admin-workspace-card .admin-update-policy>.app-switch-row{gap:14px}
 .administration-page-root .admin-overview-actions{display:grid;grid-template-columns:minmax(0,1fr)}
 .administration-page-root .admin-overview-actions>button{justify-content:center}
 .administration-page-root .admin-update-package-head,
 .administration-page-root .admin-operation-live-head,
 .administration-page-root .admin-operation-current,
 .administration-page-root .admin-realtime-head{align-items:flex-start;flex-wrap:wrap}
 .administration-page-root .administration-settings-content>.settings-unsaved-bar{left:50%;width:calc(100vw - 24px)!important;bottom:12px!important}
}
@media(prefers-reduced-motion:reduce){
 .administration-page-root .admin-workspace-card{animation:none!important}
 .administration-page-root .admin-section-nav button,.administration-page-root .admin-workspace-card .field{transition:none!important}
}

/* v1.7.1.23 — Administration: full Discord settings-style workspace rebuild. */
.shell.administration-surface,
.shell.administration-surface.members-hidden,
.shell.administration-surface.members-unavailable{
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr)!important;
  grid-template-areas:"main"!important;
  background:var(--bg)!important;
}
.shell.administration-surface>.rail,
.shell.administration-surface>.header,
.shell.administration-surface>.sidebar,
.shell.administration-surface>.sidebar-resizer,
.shell.administration-surface>.members,
.shell.administration-surface>.mobile-youbar{display:none!important}
.shell.administration-surface>.main{grid-area:main!important;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden!important}

.administration-page-root{
  --admin-nav-region:clamp(250px,29vw,340px);
  --admin-nav-width:218px;
  --admin-content-width:860px;
  --admin-sidebar-bg:var(--panel);
  --admin-content-bg:var(--bg);
  --admin-control-bg:var(--rail);
  --admin-hover-bg:color-mix(in srgb,var(--text) 8%,transparent);
  --admin-active-bg:color-mix(in srgb,var(--text) 13%,transparent);
  --admin-divider:color-mix(in srgb,var(--muted) 18%,transparent);
  --admin-card-bg:color-mix(in srgb,var(--panel) 62%,var(--bg));
  --admin-positive:var(--green,#23a55a);
  --admin-warning:var(--yellow,#f0b232);
  width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;background:var(--admin-content-bg)!important;
}
.administration-page-root .administration-standalone-shell,
.administration-page-root .administration-settings-content{width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;max-width:none!important;margin:0!important;padding:0!important;overflow:hidden!important;background:transparent!important}
.administration-page-root .administration-settings-content>*{width:auto!important;max-width:none!important;margin:0!important}
.administration-page-root .admin-discord-shell{display:grid!important;grid-template-columns:var(--admin-nav-region) minmax(0,1fr)!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;gap:0!important;padding:0!important;background:var(--admin-content-bg)!important}

/* Left settings region mirrors Discord: broad region, narrow navigation aligned to its right edge. */
.administration-page-root .admin-discord-sidebar{position:relative!important;top:auto!important;display:block!important;width:auto!important;max-height:none!important;min-width:0!important;min-height:0!important;padding:0!important;border:0!important;border-radius:0!important;background:var(--admin-sidebar-bg)!important;box-shadow:none!important;overflow:hidden!important}
.administration-page-root .admin-sidebar-inner{display:flex;flex-direction:column;width:var(--admin-nav-width);height:100%;min-height:0;margin-left:auto;padding:52px 6px 32px 0}
.administration-page-root .admin-sidebar-top{display:flex!important;align-items:center;gap:8px;min-height:44px;margin:0 6px 14px 0;padding:0 8px!important}
.administration-page-root .admin-sidebar-head{display:grid!important;grid-template-columns:34px minmax(0,1fr)!important;align-items:center;gap:9px!important;min-width:0;flex:1}
.administration-page-root .admin-sidebar-mark{display:grid!important;place-items:center;width:34px!important;height:34px!important;border-radius:11px!important;background:var(--accent)!important;color:#fff!important;box-shadow:none!important}
.administration-page-root .admin-sidebar-mark .app-icon{width:18px!important;height:18px!important}
.administration-page-root .admin-sidebar-head>div{display:grid;gap:1px;min-width:0}
.administration-page-root .admin-sidebar-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--strong)!important;font-size:14px!important;font-weight:800!important;line-height:18px!important}
.administration-page-root .admin-sidebar-head small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)!important;font-size:11px!important;font-weight:500!important;line-height:15px!important}
.administration-page-root .admin-mobile-close{display:none!important}

.administration-page-root .admin-workspace-search{position:relative;display:grid!important;gap:4px!important;margin:0 8px 13px 0!important;padding:0!important}
.administration-page-root .admin-workspace-search-icon{position:absolute!important;left:auto!important;right:9px!important;top:16px!important;translate:0 -50%;z-index:2;color:var(--muted)!important;pointer-events:none}
.administration-page-root .admin-workspace-search-icon .app-icon{width:14px!important;height:14px!important}
.administration-page-root .admin-settings-search.field{width:100%!important;height:32px!important;min-height:32px!important;margin:0!important;padding:6px 31px 6px 9px!important;border:0!important;border-radius:4px!important;background:var(--admin-control-bg)!important;color:var(--strong)!important;font-size:12px!important;line-height:20px!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--muted) 8%,transparent)!important}
.administration-page-root .admin-settings-search.field:focus{box-shadow:inset 0 0 0 1px var(--accent)!important}
.administration-page-root .admin-settings-search-state{min-height:0!important;margin:0 2px!important;padding:0!important;color:var(--muted)!important;font-size:10px!important;line-height:14px!important}
.administration-page-root .admin-settings-search-state:empty{display:none!important}
.administration-page-root .admin-section-select-wrap{display:none!important}

.administration-page-root .admin-section-nav{display:block!important;flex:1;min-height:0;margin:0!important;padding:0 8px 18px 0!important;overflow-y:auto!important;overflow-x:hidden!important;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 32%,transparent) transparent}
.administration-page-root .admin-nav-group{display:grid!important;gap:1px!important;margin:0 0 14px!important}
.administration-page-root .admin-nav-group[hidden]{display:none!important}
.administration-page-root .admin-nav-group-label{display:block!important;margin:0!important;padding:0 9px 5px!important;color:var(--muted)!important;font-size:11px!important;font-weight:800!important;line-height:16px!important;letter-spacing:.02em!important;text-transform:uppercase!important}
.administration-page-root .admin-section-nav button{position:relative;display:grid!important;grid-template-columns:20px minmax(0,1fr)!important;align-items:center!important;gap:9px!important;width:100%!important;min-height:32px!important;margin:0!important;padding:6px 9px!important;border:0!important;border-radius:4px!important;background:transparent!important;color:var(--muted)!important;font-size:14px!important;font-weight:500!important;line-height:20px!important;text-align:left!important;box-shadow:none!important;cursor:pointer;transition:background .12s ease,color .12s ease!important}
.administration-page-root .admin-section-nav button:hover{background:var(--admin-hover-bg)!important;color:var(--text)!important}
.administration-page-root .admin-section-nav button.active{background:var(--admin-active-bg)!important;color:var(--strong)!important;font-weight:600!important;box-shadow:none!important}
.administration-page-root .admin-section-nav button.active::before{content:"";position:absolute;left:-6px;top:7px;bottom:7px;width:2px;border-radius:2px;background:var(--accent)}
.administration-page-root .admin-section-nav button[hidden]{display:none!important}
.administration-page-root .admin-nav-icon{display:grid!important;place-items:center!important;width:20px!important;height:20px!important;border:0!important;border-radius:0!important;background:transparent!important;color:currentColor!important}
.administration-page-root .admin-nav-icon .app-icon{width:15px!important;height:15px!important}

.administration-page-root .admin-sidebar-footer{display:grid!important;gap:7px;margin:auto 8px 0 0!important;padding:12px 0 0!important;border-top:1px solid var(--admin-divider)!important}
.administration-page-root .admin-user-settings-link{display:flex!important;align-items:center;gap:9px;width:100%;min-height:32px;margin:0!important;padding:6px 9px!important;border:0!important;border-radius:4px!important;background:transparent!important;color:var(--muted)!important;font-size:13px!important;font-weight:600!important;text-align:left;cursor:pointer}
.administration-page-root .admin-user-settings-link:hover{background:var(--admin-hover-bg)!important;color:var(--strong)!important}
.administration-page-root .admin-user-settings-link .app-icon{width:15px!important;height:15px!important}
.administration-page-root .admin-sidebar-release{display:flex!important;align-items:center;justify-content:space-between;gap:8px;margin:0!important;padding:1px 9px!important;color:var(--muted)!important;font-size:10px!important;line-height:14px!important}
.administration-page-root .admin-sidebar-release code{color:var(--text)!important;font-size:10px!important}

/* Main settings content + Discord close tool rail. */
.administration-page-root .admin-discord-content{display:block!important;min-width:0!important;min-height:0!important;overflow:auto!important;overscroll-behavior:contain;background:var(--admin-content-bg)!important;scrollbar-gutter:stable}
.administration-page-root .admin-discord-content-region{display:grid;grid-template-columns:minmax(0,var(--admin-content-width)) 60px;gap:34px;width:min(100%,calc(var(--admin-content-width) + 118px));min-height:100%;margin:0;padding:54px 24px 120px 42px}
.administration-page-root .admin-discord-content-inner{width:100%!important;min-width:0!important;min-height:100%;margin:0!important;padding:0!important}
.administration-page-root .admin-discord-tools{position:sticky;top:54px;align-self:start;display:grid;justify-items:center;gap:7px;width:60px;color:var(--muted);font-size:11px;font-weight:700;line-height:14px}
.administration-page-root .admin-tools-close{display:grid;place-items:center;width:36px;height:36px;padding:0;border:2px solid color-mix(in srgb,var(--muted) 52%,transparent);border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;transition:border-color .12s ease,color .12s ease,background .12s ease}
.administration-page-root .admin-tools-close:hover{border-color:var(--text);background:var(--admin-hover-bg);color:var(--text)}
.administration-page-root .admin-tools-close .app-icon{width:18px;height:18px}

.administration-page-root .admin-discord-section-head{display:block!important;margin:0 0 28px!important;padding:0!important;border:0!important}
.administration-page-root .admin-discord-heading-copy{min-width:0}
.administration-page-root .admin-discord-eyebrow{display:block!important;margin:0 0 7px!important;color:var(--muted)!important;font-size:11px!important;font-weight:800!important;line-height:16px!important;letter-spacing:.035em!important;text-transform:uppercase!important}
.administration-page-root .admin-discord-title-row{display:flex;align-items:center;gap:10px;min-width:0}
.administration-page-root .admin-discord-title-icon{display:grid;place-items:center;width:24px;height:24px;flex:none;color:var(--strong)}
.administration-page-root .admin-discord-title-icon .app-icon{width:21px;height:21px}
.administration-page-root .admin-discord-title{margin:0!important;color:var(--strong)!important;font-size:20px!important;font-weight:800!important;line-height:24px!important;letter-spacing:0!important}
.administration-page-root .admin-discord-description{max-width:720px;margin:7px 0 0!important;color:var(--muted)!important;font-size:13px!important;font-weight:400!important;line-height:19px!important}
.administration-page-root .admin-discord-stage{display:block;min-width:0}

/* True settings pages: no legacy dashboard-card shell. */
.administration-page-root .admin-workspace-card{display:grid!important;gap:0!important;width:100%!important;min-width:0!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;animation:admin-discord-page-in-v23 .14s ease-out}
.administration-page-root .admin-workspace-card[hidden]{display:none!important}
@keyframes admin-discord-page-in-v23{from{opacity:.7;transform:translateY(2px)}to{opacity:1;transform:none}}
.administration-page-root .admin-workspace-card>h3,
.administration-page-root .admin-workspace-card>.admin-section-description,
.administration-page-root .admin-workspace-card>.admin-realtime-head>div>h3,
.administration-page-root .admin-workspace-card>.admin-realtime-head>div>.settings-help{display:none!important}

.administration-page-root .admin-workspace-card>label:not(.app-switch-row),
.administration-page-root .admin-workspace-card>.admin-livekit-fields>label:not(.app-switch-row),
.administration-page-root .admin-update-policy>label:not(.app-switch-row),
.administration-page-root .spotify-admin-fields>label,
.administration-page-root .seek-ai-admin-settings>label{display:grid!important;gap:8px!important;margin:0 0 22px!important;color:var(--text)!important;font-size:12px!important;font-weight:800!important;line-height:16px!important;letter-spacing:.02em!important;text-transform:uppercase!important}
.administration-page-root .admin-workspace-card label>small,
.administration-page-root .admin-workspace-card .settings-help{margin:0!important;color:var(--muted)!important;font-size:12px!important;font-weight:400!important;line-height:18px!important;letter-spacing:0!important;text-transform:none!important}
.administration-page-root .admin-workspace-card .field{width:100%!important;min-height:40px!important;margin:0!important;padding:10px!important;border:0!important;border-radius:4px!important;background:var(--admin-control-bg)!important;color:var(--strong)!important;font-size:14px!important;line-height:20px!important;box-shadow:inset 0 0 0 1px transparent!important;transition:box-shadow .12s ease,background .12s ease!important}
.administration-page-root .admin-workspace-card .field:hover{background:color-mix(in srgb,var(--admin-control-bg) 90%,var(--hover))!important}
.administration-page-root .admin-workspace-card .field:focus{outline:0!important;box-shadow:inset 0 0 0 1px var(--accent)!important}
.administration-page-root .admin-workspace-card textarea.field{min-height:96px!important;resize:vertical!important}

/* Discord-style setting rows and switches. */
.administration-page-root .admin-workspace-card>.app-switch-row,
.administration-page-root .admin-workspace-card .admin-livekit-fields>.app-switch-row,
.administration-page-root .admin-workspace-card .admin-update-policy>.app-switch-row{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:28px!important;min-height:0!important;margin:0!important;padding:17px 0!important;border:0!important;border-top:1px solid var(--admin-divider)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;text-transform:none!important}
.administration-page-root .admin-workspace-card>.app-switch-row:first-of-type{border-top:0!important;padding-top:0!important}
.administration-page-root .admin-workspace-card .app-switch-row>span{display:grid!important;gap:3px!important;min-width:0;flex:1}
.administration-page-root .admin-workspace-card .app-switch-row strong{color:var(--strong)!important;font-size:14px!important;font-weight:600!important;line-height:20px!important}
.administration-page-root .admin-workspace-card .app-switch-row small{color:var(--muted)!important;font-size:12px!important;line-height:18px!important}
.administration-page-root .admin-workspace-card .app-switch-row>input[type="checkbox"],
.administration-page-root .admin-feature-toggle>input[type="checkbox"]{appearance:none;-webkit-appearance:none;position:relative;flex:0 0 auto;width:40px!important;height:24px!important;margin:0!important;border:0!important;border-radius:12px!important;background:#80848e!important;outline:0!important;cursor:pointer;transition:background .14s ease!important}
.administration-page-root .admin-workspace-card .app-switch-row>input[type="checkbox"]::after,
.administration-page-root .admin-feature-toggle>input[type="checkbox"]::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0006;transition:translate .14s ease!important}
.administration-page-root .admin-workspace-card .app-switch-row>input[type="checkbox"]:checked,
.administration-page-root .admin-feature-toggle>input[type="checkbox"]:checked{background:var(--admin-positive)!important}
.administration-page-root .admin-workspace-card .app-switch-row>input[type="checkbox"]:checked::after,
.administration-page-root .admin-feature-toggle>input[type="checkbox"]:checked::after{translate:16px 0}
.administration-page-root .admin-workspace-card .app-switch-row>input[type="checkbox"]:focus-visible,
.administration-page-root .admin-feature-toggle>input[type="checkbox"]:focus-visible{box-shadow:0 0 0 2px var(--admin-content-bg),0 0 0 4px var(--accent)!important}
.administration-page-root .admin-workspace-card .app-switch-row>input[type="checkbox"]:disabled,
.administration-page-root .admin-feature-toggle>input[type="checkbox"]:disabled{opacity:.45;cursor:not-allowed}

.administration-page-root .admin-number-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px 24px!important;margin:0!important}
.administration-page-root .admin-number-grid label{display:grid!important;gap:8px!important;margin:0!important;color:var(--text)!important;font-size:12px!important;font-weight:800!important;text-transform:uppercase!important}
.administration-page-root .admin-livekit-fields{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0 24px!important;margin-top:18px!important;padding-top:20px!important;border-top:1px solid var(--admin-divider)!important}
.administration-page-root .admin-livekit-fields>.app-switch-row{grid-column:1/-1!important}
.administration-page-root #admin-section-general,
.administration-page-root #admin-section-access,
.administration-page-root #admin-section-spotify,
.administration-page-root #admin-section-ai{grid-template-columns:minmax(0,1fr)!important}
.administration-page-root #admin-section-general>*,
.administration-page-root #admin-section-access>*,
.administration-page-root #admin-section-spotify>*,
.administration-page-root #admin-section-ai>*{grid-column:auto!important}

/* Overview is operational, but still reads like a Discord settings page. */
.administration-page-root .admin-overview-section{gap:20px!important}
.administration-page-root .admin-overview-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;margin:0!important}
.administration-page-root .admin-overview-grid article{position:relative;display:grid!important;gap:4px!important;align-content:start!important;min-height:104px!important;margin:0!important;padding:15px!important;overflow:hidden;border:1px solid var(--admin-divider)!important;border-radius:6px!important;background:var(--admin-card-bg)!important;box-shadow:none!important}
.administration-page-root .admin-overview-grid article::after{display:none!important}
.administration-page-root .admin-overview-grid article>span{color:var(--muted)!important;font-size:11px!important;font-weight:800!important;line-height:16px!important;letter-spacing:.025em!important;text-transform:uppercase!important}
.administration-page-root .admin-overview-grid article>strong{margin-top:1px;color:var(--strong)!important;font-size:20px!important;font-weight:700!important;line-height:24px!important}
.administration-page-root .admin-overview-grid article>strong.is-good{color:var(--admin-positive)!important}
.administration-page-root .admin-overview-grid article>strong.is-warning{color:var(--admin-warning)!important}
.administration-page-root .admin-overview-grid article>small{color:var(--muted)!important;font-size:12px!important;line-height:17px!important}
.administration-page-root .admin-overview-actions{display:flex!important;flex-wrap:wrap;gap:8px!important;margin:0!important;padding:0!important}
.administration-page-root .admin-overview-actions>button{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;min-height:34px!important;margin:0!important;padding:7px 12px!important;border:0!important;border-radius:4px!important;background:var(--app-button-secondary-bg)!important;color:var(--app-button-secondary-text)!important;font-size:13px!important;font-weight:600!important;cursor:pointer}
.administration-page-root .admin-overview-actions>button:hover{background:var(--app-button-secondary-hover)!important}
.administration-page-root .admin-overview-actions .app-icon{width:15px!important;height:15px!important}

/* Operational surfaces preserve all update/restore/backup handlers while matching Discord containment. */
.administration-page-root .admin-realtime-head{margin:0 0 18px!important;padding:0 0 16px!important;border-bottom:1px solid var(--admin-divider)!important}
.administration-page-root .admin-realtime-refresh{min-height:32px!important;margin:0!important;border-radius:4px!important}
.administration-page-root .admin-realtime-status{margin:0 0 14px!important;color:var(--muted)!important;font-size:12px!important;line-height:18px!important}
.administration-page-root .admin-realtime-metrics{gap:8px!important}
.administration-page-root .admin-realtime-metric{padding:13px 14px!important;border:1px solid var(--admin-divider)!important;border-radius:6px!important;background:var(--admin-card-bg)!important;box-shadow:none!important}
.administration-page-root .admin-realtime-stream-row{border:1px solid var(--admin-divider)!important;border-radius:6px!important;background:var(--admin-card-bg)!important}
.administration-page-root .admin-operation-live{margin:0 0 22px!important;padding:16px!important;border:1px solid var(--admin-divider)!important;border-radius:6px!important;background:var(--admin-card-bg)!important;box-shadow:none!important}
.administration-page-root .admin-update-policy{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:0!important;margin:0 0 22px!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important}
.administration-page-root .admin-update-policy>.admin-subsection-head{grid-column:auto!important;padding:0 0 10px!important;border-bottom:1px solid var(--admin-divider)!important}
.administration-page-root .admin-update-policy>.admin-versioning-guide{grid-column:auto!important;margin:12px 0!important}
.administration-page-root .admin-update-workspace-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:16px!important}
.administration-page-root .admin-update-package,
.administration-page-root .admin-update-backups,
.administration-page-root .admin-update-zip-stage{border:1px solid var(--admin-divider)!important;border-radius:6px!important;background:var(--admin-card-bg)!important;box-shadow:none!important}
.administration-page-root .admin-update-actions{position:static!important;margin:0!important;padding-top:12px!important;background:transparent!important}
.administration-page-root .admin-database-backup-toolbar{margin:0 0 16px!important;padding:0 0 16px!important;border-bottom:1px solid var(--admin-divider)!important}
.administration-page-root .admin-database-backup-row,
.administration-page-root .admin-update-backup-row{border:1px solid var(--admin-divider)!important;border-radius:6px!important;background:var(--admin-card-bg)!important;box-shadow:none!important}

/* Administrator access rows resemble Discord member/settings rows. */
.administration-page-root .admin-user-features .admin-feature-search{max-width:420px!important;margin-bottom:14px!important}
.administration-page-root .admin-user-feature-list{gap:0!important;max-height:min(58vh,620px)!important;padding:0!important;border-top:1px solid var(--admin-divider)!important}
.administration-page-root .admin-user-feature-row{grid-template-columns:auto minmax(170px,.9fr) minmax(250px,1.1fr)!important;gap:12px!important;margin:0!important;padding:12px 8px!important;border:0!important;border-bottom:1px solid var(--admin-divider)!important;border-radius:0!important;background:transparent!important}
.administration-page-root .admin-user-feature-row:hover{background:var(--admin-hover-bg)!important}
.administration-page-root .admin-feature-toggle{margin:0!important}

/* Discord button language. */
.administration-page-root .admin-workspace-card .primary,
.administration-page-root .admin-workspace-card .secondary,
.administration-page-root .admin-workspace-card .danger-button{min-height:32px!important;border-radius:4px!important;font-size:13px!important;font-weight:600!important;line-height:18px!important;box-shadow:none!important}
.administration-page-root .admin-workspace-card .secondary{background:var(--app-button-secondary-bg)!important;color:var(--app-button-secondary-text)!important}
.administration-page-root .admin-workspace-card .secondary:hover{background:var(--app-button-secondary-hover)!important}
.administration-page-root .admin-workspace-card .primary{background:var(--accent)!important;color:#fff!important}
.administration-page-root .admin-workspace-card .primary:hover{filter:brightness(.94)}

/* Discord-style unsaved changes bar, centered in the content region rather than the viewport. */
.administration-page-root .administration-settings-content>.settings-unsaved-bar{position:fixed!important;z-index:30!important;left:calc(var(--admin-nav-region) + (100vw - var(--admin-nav-region))/2)!important;right:auto!important;bottom:24px!important;translate:-50% 0!important;width:min(720px,calc(100vw - var(--admin-nav-region) - 80px))!important;max-width:none!important;margin:0!important;padding:10px 12px!important;border:0!important;border-radius:5px!important;background:#111214!important;color:#fff!important;box-shadow:0 8px 28px #0008!important}

:root[data-theme="light"] .administration-page-root{--admin-sidebar-bg:#e3e5e8;--admin-content-bg:#fff;--admin-control-bg:#ebedef;--admin-hover-bg:#d8dadd;--admin-active-bg:#cfd2d7;--admin-divider:#d4d7dc;--admin-card-bg:#f6f6f7;}
:root[data-theme="light"] .administration-page-root .admin-tools-close{border-color:#a7abb2;color:#6d6f78}
:root[data-theme="light"] .administration-page-root .admin-tools-close:hover{border-color:#4e5058;color:#313338}

@media(max-width:1180px){
 .administration-page-root{--admin-nav-region:236px;--admin-nav-width:210px;--admin-content-width:780px}
 .administration-page-root .admin-sidebar-inner{padding-top:40px}
 .administration-page-root .admin-discord-content-region{gap:22px;padding:42px 18px 110px 34px}
 .administration-page-root .administration-settings-content>.settings-unsaved-bar{width:min(680px,calc(100vw - var(--admin-nav-region) - 52px))!important}
}
@media(max-width:900px){
 .administration-page-root{--admin-nav-region:100%;--admin-nav-width:100%;--admin-content-width:100%}
 .administration-page-root .admin-discord-shell{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto minmax(0,1fr)!important}
 .administration-page-root .admin-discord-sidebar{border-bottom:1px solid var(--admin-divider)!important;overflow:visible!important}
 .administration-page-root .admin-sidebar-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.75fr);align-items:end;gap:10px;width:100%;height:auto;margin:0;padding:11px 16px!important}
 .administration-page-root .admin-sidebar-top{min-height:36px;margin:0;padding:0!important}
 .administration-page-root .admin-sidebar-mark{width:32px!important;height:32px!important;border-radius:10px!important}
 .administration-page-root .admin-sidebar-head{grid-template-columns:32px minmax(0,1fr)!important}
 .administration-page-root .admin-mobile-close{display:grid!important}
 .administration-page-root .admin-workspace-search,.administration-page-root .admin-section-nav,.administration-page-root .admin-sidebar-footer{display:none!important}
 .administration-page-root .admin-section-select-wrap{display:grid!important;gap:4px!important;margin:0!important;color:var(--muted)!important;font-size:10px!important;font-weight:800!important;text-transform:uppercase!important}
 .administration-page-root .admin-section-select{display:block!important;width:100%!important;min-height:36px!important;padding:7px 10px!important;border:0!important;border-radius:4px!important;background:var(--admin-control-bg)!important;color:var(--strong)!important;font-size:13px!important;text-transform:none!important}
 .administration-page-root .admin-discord-content-region{display:block;width:100%;margin:0;padding:28px 18px 100px}
 .administration-page-root .admin-discord-content-inner{width:min(820px,100%)!important;margin:0 auto!important}
 .administration-page-root .admin-discord-tools{display:none!important}
 .administration-page-root .administration-settings-content>.settings-unsaved-bar{left:50%!important;width:min(680px,calc(100vw - 32px))!important;bottom:16px!important}
}
@media(max-width:700px){
 .administration-page-root .admin-sidebar-inner{grid-template-columns:minmax(0,1fr);gap:8px;padding:max(10px,env(safe-area-inset-top)) 12px 10px!important}
 .administration-page-root .admin-sidebar-top{margin:0}
 .administration-page-root .admin-discord-content-region{padding:22px 14px 92px!important}
 .administration-page-root .admin-discord-title{font-size:19px!important;line-height:23px!important}
 .administration-page-root .admin-discord-title-icon{width:22px;height:22px}
 .administration-page-root .admin-discord-title-icon .app-icon{width:19px;height:19px}
 .administration-page-root .admin-discord-description{font-size:12px!important;line-height:18px!important}
 .administration-page-root .admin-overview-grid{grid-template-columns:minmax(0,1fr)!important}
 .administration-page-root .admin-number-grid,.administration-page-root .admin-livekit-fields{grid-template-columns:minmax(0,1fr)!important}
 .administration-page-root .admin-workspace-card>.app-switch-row,.administration-page-root .admin-workspace-card .admin-livekit-fields>.app-switch-row,.administration-page-root .admin-workspace-card .admin-update-policy>.app-switch-row{gap:14px!important}
 .administration-page-root .admin-user-feature-row{grid-template-columns:auto minmax(0,1fr)!important;padding:11px 4px!important}
 .administration-page-root .server-admin-toggle{grid-column:1/-1!important}
 .administration-page-root .administration-settings-content>.settings-unsaved-bar{left:50%!important;width:calc(100vw - 24px)!important;bottom:max(12px,env(safe-area-inset-bottom))!important}
}
@media(prefers-reduced-motion:reduce){
 .administration-page-root .admin-workspace-card{animation:none!important}
 .administration-page-root .admin-section-nav button,.administration-page-root .admin-tools-close,.administration-page-root input[type="checkbox"]{transition:none!important}
}

/* v1.7.1.24 — Administration is an independent Discord-style modal, not a User Settings surface. */
.modal-backdrop:has(> .modal.modal-administration){
  align-items:center!important;
  justify-content:center!important;
  padding:24px!important;
  background:rgba(0,0,0,.68)!important;
  backdrop-filter:blur(2px);
}
.modal-backdrop > .modal.modal-administration{
  display:block!important;
  width:min(1180px,calc(100vw - 48px))!important;
  height:min(820px,calc(100dvh - 48px))!important;
  max-width:none!important;
  max-height:none!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid color-mix(in srgb,var(--muted) 16%,transparent)!important;
  border-radius:12px!important;
  background:var(--bg)!important;
  box-shadow:0 24px 80px rgba(0,0,0,.48)!important;
}
.modal-backdrop > .modal.modal-administration > .close{
  top:14px!important;
  right:14px!important;
  z-index:80!important;
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  min-height:32px!important;
  border:0!important;
  border-radius:50%!important;
  background:transparent!important;
  color:var(--muted)!important;
  box-shadow:none!important;
}
.modal-backdrop > .modal.modal-administration > .close:hover,
.modal-backdrop > .modal.modal-administration > .close:focus-visible{
  background:var(--hover)!important;
  color:var(--strong)!important;
}
.modal-backdrop > .modal.modal-administration > .close .app-icon{width:18px!important;height:18px!important}
.modal-administration .administration-modal-root{
  --admin-nav-region:244px;
  --admin-nav-width:216px;
  --admin-content-width:760px;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  overflow:hidden!important;
  background:var(--bg)!important;
}
.modal-administration .administration-settings-content{
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  background:transparent!important;
}
.modal-administration .administration-settings-content > *{max-width:none!important;margin:0!important}
.modal-administration .admin-discord-shell{
  display:grid!important;
  grid-template-columns:var(--admin-nav-region) minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr)!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  padding:0!important;
  gap:0!important;
  background:var(--admin-content-bg)!important;
}
.modal-administration .admin-discord-sidebar{
  width:auto!important;
  min-width:0!important;
  min-height:0!important;
  max-height:none!important;
  padding:0!important;
  overflow:hidden!important;
  border:0!important;
  border-right:1px solid var(--admin-divider)!important;
  border-radius:0!important;
  background:var(--admin-sidebar-bg)!important;
  box-shadow:none!important;
}
.modal-administration .admin-sidebar-inner{
  display:flex!important;
  flex-direction:column!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:26px 10px 18px 16px!important;
}
.modal-administration .admin-sidebar-top{
  display:flex!important;
  align-items:center!important;
  min-height:38px!important;
  margin:0 4px 14px 0!important;
  padding:0 6px!important;
}
.modal-administration .admin-sidebar-head{
  display:grid!important;
  grid-template-columns:32px minmax(0,1fr)!important;
  align-items:center!important;
  gap:9px!important;
  width:100%!important;
  min-width:0!important;
}
.modal-administration .admin-sidebar-mark{
  width:32px!important;
  height:32px!important;
  border-radius:10px!important;
  background:var(--accent)!important;
  color:#fff!important;
}
.modal-administration .admin-sidebar-head strong{font-size:13px!important;line-height:17px!important}
.modal-administration .admin-sidebar-head small{font-size:10px!important;line-height:14px!important}
.modal-administration .admin-workspace-search{
  display:grid!important;
  position:relative!important;
  gap:4px!important;
  margin:0 4px 12px 0!important;
  padding:0!important;
}
.modal-administration .admin-workspace-search-icon{top:16px!important;right:9px!important}
.modal-administration .admin-settings-search.field{
  width:100%!important;
  height:32px!important;
  min-height:32px!important;
  padding:6px 31px 6px 9px!important;
  border:0!important;
  border-radius:4px!important;
  background:var(--admin-control-bg)!important;
  color:var(--strong)!important;
  font-size:12px!important;
  line-height:20px!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--muted) 10%,transparent)!important;
}
.modal-administration .admin-settings-search.field:focus{box-shadow:inset 0 0 0 1px var(--accent)!important}
.modal-administration .admin-section-nav{
  display:block!important;
  flex:1 1 auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0 4px 12px 0!important;
  overflow:auto!important;
}
.modal-administration .admin-nav-group{margin:0 0 12px!important;gap:1px!important}
.modal-administration .admin-nav-group-label{
  padding:0 8px 4px!important;
  font-size:10px!important;
  line-height:15px!important;
  color:var(--muted)!important;
}
.modal-administration .admin-section-nav button{
  grid-template-columns:18px minmax(0,1fr)!important;
  gap:8px!important;
  width:100%!important;
  min-height:32px!important;
  padding:6px 8px!important;
  border-radius:4px!important;
  font-size:13px!important;
  line-height:20px!important;
}
.modal-administration .admin-section-nav button.active::before{left:-4px!important;top:7px!important;bottom:7px!important}
.modal-administration .admin-nav-icon{width:18px!important;height:18px!important}
.modal-administration .admin-nav-icon .app-icon{width:14px!important;height:14px!important}
.modal-administration .admin-sidebar-footer{
  display:block!important;
  margin:auto 4px 0 0!important;
  padding:10px 0 0!important;
  border-top:1px solid var(--admin-divider)!important;
}
.modal-administration .admin-sidebar-release{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  padding:2px 8px!important;
  color:var(--muted)!important;
  font-size:10px!important;
  line-height:14px!important;
}
.modal-administration .admin-section-select-wrap{display:none!important}
.modal-administration .admin-discord-content{
  display:block!important;
  min-width:0!important;
  min-height:0!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
  background:var(--admin-content-bg)!important;
  scrollbar-gutter:stable;
}
.modal-administration .admin-discord-content-region{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  min-height:100%!important;
  margin:0 auto!important;
  padding:38px 54px 88px 42px!important;
}
.modal-administration .admin-discord-content-inner{
  width:min(var(--admin-content-width),100%)!important;
  min-width:0!important;
  min-height:100%!important;
  margin:0 auto!important;
  padding:0!important;
}
.modal-administration .admin-discord-section-head{
  margin:0 0 24px!important;
  padding:0 42px 18px 0!important;
  border-bottom:1px solid var(--admin-divider)!important;
}
.modal-administration .admin-discord-eyebrow{margin:0 0 5px!important;font-size:10px!important;line-height:15px!important}
.modal-administration .admin-discord-title-row{gap:9px!important}
.modal-administration .admin-discord-title-icon{width:22px!important;height:22px!important}
.modal-administration .admin-discord-title-icon .app-icon{width:19px!important;height:19px!important}
.modal-administration .admin-discord-title{font-size:20px!important;line-height:24px!important}
.modal-administration .admin-discord-description{max-width:680px!important;margin:6px 0 0!important;font-size:12px!important;line-height:18px!important}
.modal-administration .admin-workspace-card{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.modal-administration .admin-workspace-card[hidden]{display:none!important}
.modal-administration .admin-workspace-card > h3,
.modal-administration .admin-workspace-card > .admin-section-description,
.modal-administration .admin-workspace-card > .admin-realtime-head > div > h3,
.modal-administration .admin-workspace-card > .admin-realtime-head > div > .settings-help{display:none!important}
.modal-administration .admin-workspace-card > label:not(.app-switch-row),
.modal-administration .admin-number-grid > label,
.modal-administration .admin-livekit-fields > label:not(.app-switch-row),
.modal-administration .spotify-admin-settings > label:not(.app-switch-row),
.modal-administration .seek-ai-admin-settings > label:not(.app-switch-row){
  display:grid!important;
  gap:7px!important;
  margin:0 0 18px!important;
  color:var(--text)!important;
  font-size:11px!important;
  font-weight:700!important;
  line-height:16px!important;
  letter-spacing:.02em!important;
  text-transform:uppercase!important;
}
.modal-administration .admin-workspace-card .field{
  min-height:38px!important;
  padding:8px 10px!important;
  border:1px solid transparent!important;
  border-radius:4px!important;
  background:var(--admin-control-bg)!important;
  color:var(--strong)!important;
  font-size:14px!important;
  line-height:20px!important;
  box-shadow:none!important;
}
.modal-administration .admin-workspace-card textarea.field{min-height:82px!important;resize:vertical!important}
.modal-administration .admin-workspace-card .field:focus{border-color:var(--accent)!important;outline:none!important}
.modal-administration .admin-workspace-card > .app-switch-row,
.modal-administration .admin-workspace-card .admin-update-policy > .app-switch-row,
.modal-administration .admin-workspace-card .admin-livekit-fields > .app-switch-row,
.modal-administration .spotify-admin-settings > .app-switch-row,
.modal-administration .seek-ai-admin-settings > .app-switch-row{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:22px!important;
  min-height:0!important;
  margin:0!important;
  padding:14px 0!important;
  border:0!important;
  border-bottom:1px solid var(--admin-divider)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  text-transform:none!important;
}
.modal-administration .admin-workspace-card .app-switch-row strong{font-size:13px!important;line-height:18px!important}
.modal-administration .admin-workspace-card .app-switch-row small{font-size:11px!important;line-height:16px!important}
.modal-administration .admin-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
.modal-administration .admin-overview-grid article,
.modal-administration .admin-realtime-metric,
.modal-administration .admin-realtime-stream-row,
.modal-administration .admin-operation-live,
.modal-administration .admin-update-package,
.modal-administration .admin-update-backups,
.modal-administration .admin-update-zip-stage,
.modal-administration .admin-database-backup-row,
.modal-administration .admin-update-backup-row{
  border:1px solid var(--admin-divider)!important;
  border-radius:7px!important;
  background:var(--admin-card-bg)!important;
  box-shadow:none!important;
}
.modal-administration .admin-overview-grid article{min-height:96px!important;padding:14px!important}
.modal-administration .admin-overview-actions{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-top:14px!important}
.modal-administration .admin-number-grid,
.modal-administration .admin-livekit-fields{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
.modal-administration .admin-update-workspace-grid{grid-template-columns:minmax(0,1fr)!important;gap:14px!important}
.modal-administration .admin-user-feature-row{
  grid-template-columns:auto minmax(150px,.9fr) minmax(230px,1.1fr)!important;
  gap:12px!important;
  padding:12px 6px!important;
  border:0!important;
  border-bottom:1px solid var(--admin-divider)!important;
  border-radius:0!important;
  background:transparent!important;
}
.modal-administration .administration-settings-content > .settings-unsaved-bar{
  position:absolute!important;
  z-index:70!important;
  left:calc(var(--admin-nav-region) + (100% - var(--admin-nav-region))/2)!important;
  right:auto!important;
  bottom:16px!important;
  translate:-50% 0!important;
  width:min(680px,calc(100% - var(--admin-nav-region) - 56px))!important;
  max-width:none!important;
  margin:0!important;
  padding:10px 12px!important;
  border:0!important;
  border-radius:5px!important;
  background:#111214!important;
  color:#fff!important;
  box-shadow:0 8px 28px #0008!important;
}
:root[data-theme="light"] .modal-backdrop > .modal.modal-administration{background:#fff!important;border-color:#d4d7dc!important}

@media(max-width:920px){
 .modal-administration .administration-modal-root{--admin-nav-region:220px;--admin-nav-width:196px;--admin-content-width:100%}
 .modal-administration .admin-sidebar-inner{padding-left:12px!important}
 .modal-administration .admin-discord-content-region{padding:34px 34px 86px 30px!important}
 .modal-administration .admin-number-grid,.modal-administration .admin-livekit-fields{grid-template-columns:minmax(0,1fr)!important}
}
@media(max-width:720px){
 .modal-backdrop:has(> .modal.modal-administration){padding:8px!important;align-items:center!important}
 .modal-backdrop > .modal.modal-administration{
   width:calc(100vw - 16px)!important;
   height:calc(100dvh - 16px)!important;
   border-radius:10px!important;
 }
 .modal-backdrop > .modal.modal-administration > .close{top:10px!important;right:10px!important;background:var(--admin-sidebar-bg)!important}
 .modal-administration .administration-modal-root{--admin-nav-region:100%;--admin-nav-width:100%;--admin-content-width:100%}
 .modal-administration .admin-discord-shell{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto minmax(0,1fr)!important}
 .modal-administration .admin-discord-sidebar{border-right:0!important;border-bottom:1px solid var(--admin-divider)!important;overflow:visible!important}
 .modal-administration .admin-sidebar-inner{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important;width:100%!important;height:auto!important;padding:max(10px,env(safe-area-inset-top)) 50px 10px 12px!important}
 .modal-administration .admin-sidebar-top{min-height:32px!important;margin:0!important;padding:0!important}
 .modal-administration .admin-sidebar-head{grid-template-columns:30px minmax(0,1fr)!important}
 .modal-administration .admin-sidebar-mark{width:30px!important;height:30px!important;border-radius:9px!important}
 .modal-administration .admin-workspace-search,.modal-administration .admin-section-nav,.modal-administration .admin-sidebar-footer{display:none!important}
 .modal-administration .admin-section-select-wrap{display:grid!important;gap:4px!important;margin:0!important;color:var(--muted)!important;font-size:10px!important;font-weight:700!important;text-transform:uppercase!important}
 .modal-administration .admin-section-select{display:block!important;width:100%!important;min-height:38px!important;padding:8px 10px!important;border:0!important;border-radius:4px!important;background:var(--admin-control-bg)!important;color:var(--strong)!important;font-size:14px!important;text-transform:none!important}
 .modal-administration .admin-discord-content-region{padding:20px 14px 86px!important}
 .modal-administration .admin-discord-content-inner{width:100%!important;margin:0!important}
 .modal-administration .admin-discord-section-head{margin-bottom:18px!important;padding:0 34px 14px 0!important}
 .modal-administration .admin-discord-title{font-size:18px!important;line-height:22px!important}
 .modal-administration .admin-discord-description{font-size:11px!important;line-height:17px!important}
 .modal-administration .admin-overview-grid{grid-template-columns:minmax(0,1fr)!important}
 .modal-administration .admin-overview-actions{display:grid!important;grid-template-columns:minmax(0,1fr)!important}
 .modal-administration .admin-overview-actions > button{justify-content:center!important}
 .modal-administration .admin-user-feature-row{grid-template-columns:auto minmax(0,1fr)!important;padding:11px 4px!important}
 .modal-administration .server-admin-toggle{grid-column:1/-1!important}
 .modal-administration .administration-settings-content > .settings-unsaved-bar{left:50%!important;width:calc(100% - 24px)!important;bottom:max(12px,env(safe-area-inset-bottom))!important}
}


/* v1.7.1.25 — Administration modal layout/control consistency. */
.modal-administration .admin-discord-shell{
  align-items:stretch!important;
  overflow:hidden!important;
}
@media(min-width:721px){
  .modal-administration .admin-discord-sidebar{
    align-self:stretch!important;
    display:flex!important;
    flex-direction:column!important;
    height:100%!important;
    min-height:100%!important;
    max-height:100%!important;
    overflow:hidden!important;
  }
  .modal-administration .admin-sidebar-inner{
    flex:1 1 auto!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
  }
  .modal-administration .admin-section-nav{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
  }
}

/* Administration uses the application's standard switch, rather than a second slider implementation. */
.modal-administration .app-toggle{
  position:relative!important;
  display:block!important;
  width:40px!important;
  height:24px!important;
  flex:0 0 40px!important;
  margin:0!important;
}
.modal-administration .app-toggle input{
  position:absolute!important;
  inset:0!important;
  width:40px!important;
  height:24px!important;
  margin:0!important;
  opacity:0!important;
}
.modal-administration .app-toggle i{
  position:absolute!important;
  inset:0!important;
  border-radius:12px!important;
  background:#80848e!important;
  box-shadow:none!important;
}
.modal-administration .app-toggle i::after{
  top:3px!important;
  left:3px!important;
  width:18px!important;
  height:18px!important;
  background:#fff!important;
  transform:none!important;
  translate:none!important;
}
.modal-administration .app-toggle input:checked+i{background:var(--green)!important}
.modal-administration .app-toggle input:checked+i::after{transform:translateX(16px)!important;translate:none!important}
.modal-administration .app-toggle input:focus-visible+i{outline:2px solid var(--accent)!important;outline-offset:2px!important}
.modal-administration .app-toggle input:disabled+i{opacity:.55!important}

/* Let buttons inherit the application's active theme and semantic button system. */
.modal-administration .admin-workspace-card :is(button.primary,button.secondary,button.danger-button,button.action-button),
.modal-administration :is(.admin-overview-actions,.admin-update-actions,.admin-database-backup-actions,.admin-database-backup-toolbar,.admin-realtime-head,.seek-ai-admin-model-row) :is(button.primary,button.secondary,button.danger-button,button.action-button){
  min-height:36px!important;
  height:auto!important;
  padding:8px 12px!important;
  border-radius:4px!important;
  font-size:13px!important;
  font-weight:600!important;
  line-height:18px!important;
  box-shadow:none!important;
}
.modal-administration .admin-workspace-card button.secondary,
.modal-administration :is(.admin-overview-actions,.admin-update-actions,.admin-database-backup-actions,.admin-database-backup-toolbar,.admin-realtime-head,.seek-ai-admin-model-row) button.secondary{
  border:1px solid var(--neutral-button-border,transparent)!important;
  background:var(--neutral-button-bg,var(--input))!important;
  color:var(--strong)!important;
}
.modal-administration .admin-workspace-card button.secondary:hover:not(:disabled),
.modal-administration :is(.admin-overview-actions,.admin-update-actions,.admin-database-backup-actions,.admin-database-backup-toolbar,.admin-realtime-head,.seek-ai-admin-model-row) button.secondary:hover:not(:disabled){
  border-color:color-mix(in srgb,var(--accent) 30%,var(--neutral-button-border,transparent))!important;
  background:var(--neutral-button-hover,var(--hover))!important;
}
.modal-administration .admin-workspace-card button.primary{
  border:1px solid transparent!important;
  background:var(--accent)!important;
  color:#fff!important;
}
.modal-administration :is(.admin-overview-actions,.admin-update-actions,.admin-database-backup-actions,.admin-database-backup-toolbar,.admin-realtime-head,.seek-ai-admin-model-row){
  gap:8px!important;
}
.modal-administration :is(.admin-overview-actions,.admin-update-actions,.admin-database-backup-actions,.admin-database-backup-toolbar) > button{
  max-width:100%!important;
}
.modal-administration .admin-workspace-card button:focus-visible{
  outline:2px solid color-mix(in srgb,var(--accent) 78%,#fff)!important;
  outline-offset:2px!important;
}

/* Keep long labels and dense operational controls responsive inside the modal. */
.modal-administration .admin-workspace-card,
.modal-administration .admin-workspace-card *,
.modal-administration .admin-update-workspace-grid,
.modal-administration .admin-update-package,
.modal-administration .admin-update-backups,
.modal-administration .admin-database-backup-row,
.modal-administration .admin-update-backup-row{min-width:0}
.modal-administration .admin-workspace-card :is(strong,small,p,span,code){overflow-wrap:anywhere}

@media(min-width:721px) and (max-width:980px){
  .modal-administration .administration-modal-root{--admin-nav-region:212px!important;--admin-nav-width:188px!important;--admin-content-width:100%!important}
  .modal-administration .admin-sidebar-inner{padding:22px 8px 16px 12px!important}
  .modal-administration .admin-discord-content-region{padding:30px 28px 84px 26px!important}
  .modal-administration .admin-user-feature-row{grid-template-columns:auto minmax(0,1fr)!important}
  .modal-administration .server-admin-toggle{grid-column:1/-1!important}
}


/* v1.7.1.26 — Administration uses the same outer modal frame as the application's other full modals. */
.modal-backdrop:has(> .modal.modal-full.modal-administration){
  align-items:center!important;
  justify-content:center!important;
  padding:24px!important;
  background:#0009!important;
  backdrop-filter:none!important;
}
.modal-backdrop > .modal.modal-full.modal-administration{
  width:min(1180px,calc(100vw - 48px))!important;
  height:min(860px,calc(100dvh - 48px))!important;
  max-width:calc(100vw - 48px)!important;
  max-height:calc(100dvh - 48px)!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:12px!important;
  background:var(--panel)!important;
  box-shadow:0 20px 80px #000!important;
}
.modal-backdrop > .modal.modal-full.modal-administration > .close{
  position:absolute!important;
  top:18px!important;
  right:20px!important;
  z-index:80!important;
  display:grid!important;
  place-items:center!important;
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  min-height:36px!important;
  padding:0!important;
  border:2px solid var(--muted)!important;
  border-radius:50%!important;
  background:transparent!important;
  color:var(--muted)!important;
  box-shadow:none!important;
}
.modal-backdrop > .modal.modal-full.modal-administration > .close:hover,
.modal-backdrop > .modal.modal-full.modal-administration > .close:focus-visible{
  background:var(--hover)!important;
  color:var(--strong)!important;
}
:root[data-theme="light"] .modal-backdrop > .modal.modal-full.modal-administration{
  background:var(--panel)!important;
  border:0!important;
}
@media(min-width:701px) and (max-width:1000px){
  .modal-backdrop:has(> .modal.modal-full.modal-administration){padding:16px!important}
  .modal-backdrop > .modal.modal-full.modal-administration{
    width:calc(100vw - 32px)!important;
    height:calc(100dvh - 32px)!important;
    max-width:calc(100vw - 32px)!important;
    max-height:calc(100dvh - 32px)!important;
    border-radius:12px!important;
  }
}


/* v1.7.1.29 — Discord-style bounded Administration content column.
   The scroller owns the modal height; the settings column stays intrinsic and width-bounded. */
.modal-administration .admin-discord-content{
  box-sizing:border-box!important;
  padding:0!important;
  background:var(--admin-content-bg)!important;
}
.modal-administration .admin-discord-content-region{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  width:min(836px,100%)!important;
  max-width:836px!important;
  min-height:0!important;
  height:auto!important;
  margin:0 auto!important;
  padding:38px 54px 88px 42px!important;
  background:transparent!important;
  border-radius:0!important;
}
.modal-administration .admin-discord-content-inner{
  flex:0 1 740px!important;
  width:min(740px,100%)!important;
  max-width:740px!important;
  min-width:0!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
}
@media(min-width:721px) and (max-width:980px){
  .modal-administration .admin-discord-content-region{padding:30px 28px 84px 26px!important}
  .modal-administration .admin-discord-content-inner{width:100%!important;max-width:740px!important}
}

/* v1.7.1.30 — Administration content viewport owns the edge gutter.
   Keep the bounded content region away from every edge of admin-discord-content. */
.modal-administration .admin-discord-content{
  box-sizing:border-box!important;
  padding:38px 46px 72px!important;
}
.modal-administration .admin-discord-content-region{
  width:min(836px,100%)!important;
  max-width:836px!important;
  margin:0 auto!important;
  padding:0!important;
}
@media(min-width:721px) and (max-width:980px){
  .modal-administration .admin-discord-content{padding:30px 30px 64px!important}
  .modal-administration .admin-discord-content-region{padding:0!important}
}

/* v1.7.1.31 — Administration content region is vertically inset from the modal viewport.
   admin-discord-content owns persistent outer space; the bounded region owns scrolling. */
@media(min-width:721px){
  .modal-administration .admin-discord-content{
    display:flex!important;
    align-items:stretch!important;
    justify-content:center!important;
    box-sizing:border-box!important;
    min-height:0!important;
    overflow:hidden!important;
    padding:30px 46px!important;
  }
  .modal-administration .admin-discord-content-region{
    flex:0 1 836px!important;
    width:min(836px,100%)!important;
    max-width:836px!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    margin:0!important;
    padding:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    scrollbar-gutter:stable!important;
  }
  .modal-administration .admin-discord-content-inner{
    min-height:0!important;
    height:auto!important;
    padding-bottom:30px!important;
  }
}
@media(min-width:721px) and (max-width:980px){
  .modal-administration .admin-discord-content{padding:24px 30px!important}
  .modal-administration .admin-discord-content-inner{padding-bottom:24px!important}
}

/* v1.7.1.32 — Administration content fits the shared modal close-button rail.
   The scrolling region aligns with the close control vertically and reserves its tool lane horizontally. */
@media(min-width:981px){
  .modal-administration .admin-discord-content{
    padding:18px 76px 18px 46px!important;
  }
}
@media(min-width:721px) and (max-width:980px){
  .modal-administration .admin-discord-content{
    padding:18px 68px 18px 24px!important;
  }
}

/* v1.7.1.34 — passive Discord-like application tooltips.
   Isolated from modal/settings layout so overlays cannot alter Administration geometry. */
.discord-tooltip{
 position:fixed;z-index:var(--app-tooltip-z,12020);width:max-content;max-width:min(320px,calc(100vw - 16px));
 padding:8px 12px;border:0;border-radius:4px;background:#111214;color:#f2f3f5;
 box-shadow:0 4px 14px rgba(0,0,0,.36);font-size:14px;font-weight:600;line-height:18px;
 letter-spacing:0;text-align:center;white-space:normal;overflow-wrap:anywhere;pointer-events:none;
 opacity:0;transform:scale(.96);transform-origin:center;transition:opacity 80ms ease,transform 80ms ease;
 will-change:opacity,transform
}
.discord-tooltip.is-visible{opacity:1;transform:scale(1)}
.discord-tooltip::after{content:"";position:absolute;width:8px;height:8px;background:#111214;transform:rotate(45deg);pointer-events:none}
.discord-tooltip[data-placement="top"]::after{left:var(--app-tooltip-arrow-x,50%);top:calc(100% - 4px);margin-left:-4px}
.discord-tooltip[data-placement="bottom"]::after{left:var(--app-tooltip-arrow-x,50%);bottom:calc(100% - 4px);margin-left:-4px}
.discord-tooltip[data-placement="left"]::after{top:var(--app-tooltip-arrow-y,50%);left:calc(100% - 4px);margin-top:-4px}
.discord-tooltip[data-placement="right"]::after{top:var(--app-tooltip-arrow-y,50%);right:calc(100% - 4px);margin-top:-4px}
.discord-tooltip-label{display:block;min-width:0}
@media (hover:none),(pointer:coarse){.discord-tooltip{display:none!important}}
@media (prefers-reduced-motion:reduce){.discord-tooltip{transition:none}}

/* v1.7.1.36 — Administration layout regression fix and unified danger actions.
   The modal Overview is a vertical settings section; quick actions must never squeeze the status grid.
   Destructive buttons use the same application-wide danger contract inside and outside Administration. */
.modal-administration .admin-overview-section.admin-command-center{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  align-items:stretch!important;
  gap:20px!important;
  width:100%!important;
  min-width:0!important;
}
.modal-administration .admin-overview-grid{
  width:100%!important;
  min-width:0!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.modal-administration .admin-overview-actions{
  width:100%!important;
  min-width:0!important;
  margin:0!important;
}
@media(max-width:720px){
  .modal-administration .admin-overview-grid{grid-template-columns:minmax(0,1fr)!important}
}

/* Application-wide bordered destructive button. Keep menu danger actions borderless below. */
button.danger-button{
  background:transparent!important;
  border:1px solid var(--app-button-danger,var(--app-danger))!important;
  color:var(--app-button-danger,var(--app-danger))!important;
  -webkit-text-fill-color:var(--app-button-danger,var(--app-danger))!important;
  box-shadow:none!important;
}
button.danger-button :is(span,strong,small,i,b){
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
}
button.danger-button svg,
button.danger-button svg *{
  color:inherit!important;
  fill:currentColor!important;
  stroke:currentColor!important;
}
button.danger-button:is(:hover,:focus-visible){
  background:var(--app-button-danger,var(--app-danger))!important;
  border-color:var(--app-button-danger,var(--app-danger))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
button.danger-button:disabled{
  opacity:.5!important;
  cursor:not-allowed!important;
}
.context-menu button.danger-button,
.server-menu-popover button.danger-button,
.presence-popover button.danger-button{
  background:transparent!important;
  border:0!important;
  color:var(--app-button-danger,var(--app-danger))!important;
  -webkit-text-fill-color:var(--app-button-danger,var(--app-danger))!important;
}
.context-menu button.danger-button:is(:hover,:focus-visible),
.server-menu-popover button.danger-button:is(:hover,:focus-visible),
.presence-popover button.danger-button:is(:hover,:focus-visible){
  background:var(--app-button-danger,var(--app-danger))!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Compact destructive actions keep the same semantic danger token without
   forcing the bordered labelled-button geometry. */
button.danger-action{
  background:transparent!important;
  border-color:transparent!important;
  color:var(--app-button-danger)!important;
  -webkit-text-fill-color:var(--app-button-danger)!important;
  box-shadow:none!important;
}
button.danger-action :is(span,strong,small,i,b),
button.danger-action svg,
button.danger-action svg *{color:inherit!important;fill:currentColor!important;stroke:currentColor!important}
button.danger-action:is(:hover,:focus-visible):not(:disabled){
  background:var(--app-button-danger-soft)!important;
  color:color-mix(in srgb,var(--app-button-danger) 82%,#fff)!important;
  -webkit-text-fill-color:color-mix(in srgb,var(--app-button-danger) 82%,#fff)!important;
}
.msg-actions button[data-act="delete"]{color:var(--app-button-danger)!important}
.msg-actions button[data-act="delete"]:is(:hover,:focus-visible){background:var(--app-button-danger-soft)!important;color:color-mix(in srgb,var(--app-button-danger) 82%,#fff)!important}

/* v1.7.1.37 — Administration danger parity and unclipped overview values.
   Administration destructive actions inherit the same bordered application danger language,
   and overview value line boxes leave room for descenders without sacrificing ellipsis. */
.admin-overview-grid article>strong{
  line-height:1.35!important;
  padding-bottom:2px!important;
}

/* v1.7.1.40 — authoritative application-wide spacing rhythm.
   One 4px-based scale governs relationships across the application: compact icon
   clusters, controls, rows, independent surfaces, sections and full page regions.
   This replaces the earlier partial spacing layers so spacing is structural rather
   than a collection of per-component one-off values. */
:root{
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-8:32px;
  --gap-icon:var(--space-1);
  --gap-inline:var(--space-2);
  --gap-control:var(--space-2);
  --gap-row:var(--space-3);
  --gap-surface:var(--space-4);
  --gap-section:var(--space-6);
  --gap-page:var(--space-8);
  --control-gap-compact:var(--gap-icon);
  --control-gap:var(--gap-control);
  --control-gap-relaxed:var(--gap-row);
}

/* Icon-only controls stay dense. */
:is(
  .header-actions,
  .msg-actions,
  .composer-actions,
  .userbar-controls,
  .voice-box-actions,
  .voice-stage-head-actions,
  .voice-stage-view-switch,
  .voice-stage-toolbar,
  .group-files-toolbar-actions,
  .emoji-picker-actions,
  .image-lightbox-actions,
  .image-editor-toolbar,
  .role-order-controls
){gap:var(--gap-icon)!important}
.dm-game-panel-head>div:last-child{gap:var(--gap-icon)!important}

/* Buttons with an icon and label always use the normal inline rhythm. */
:is(.primary,.secondary,.danger-button,.action-button,.lightbox-action),
.group-files-toolbar-actions button,
.voice-settings-card-head button,
.settings-nav button,
.presence-popover>button,
.server-menu-popover button{
  gap:var(--gap-inline)!important;
}

/* Adjacent actions share one predictable gap horizontally and when wrapping. */
:is(
  .actions,
  .inline,
  .modal-actions,
  .modal-footer,
  .dialog-actions,
  .messagebox-actions,
  .settings-page-actions,
  .settings-row-actions,
  .voice-settings-actions,
  .channel-actions,
  .category-actions,
  .group-actions,
  .friend .actions,
  .account-detail-actions,
  .invite-row-actions,
  .cookie-consent-actions,
  .server-profile-upload-actions,
  .spotify-connection-actions,
  .developer-form-actions,
  .developer-authorize-actions,
  .developer-doc-download-actions,
  .developer-application-doc-actions,
  .group-files-detail-actions,
  .group-files-header-actions,
  .group-files-footer-actions,
  .admin-quick-actions,
  .admin-overview-actions,
  .admin-update-actions,
  .admin-update-zip-actions,
  .admin-database-backup-toolbar,
  .admin-database-backup-actions
){
  column-gap:var(--gap-control)!important;
  row-gap:var(--gap-control)!important;
}

/* Input/button pairs and compact form rows. */
:is(.row,.inline-form,.input-action-row,.settings-inline-row,.custom-status-row){
  column-gap:var(--gap-control)!important;
  row-gap:var(--gap-control)!important;
}

/* Identity/content rows need more separation than a toolbar. */
:is(
  .settings-list>div,
  .permission-row,
  .account-detail-row,
  .server-member-settings-row,
  .developer-toggle-row,
  .developer-check-row,
  .admin-user-feature-row,
  .invite-row,
  .ban-row,
  .danger-row,
  .radio-row,
  .group-files-row,
  .voice-participant-row,
  .audit-entry,
  .security-action-row,
  .admin-database-backup-row,
  .admin-update-backup-row,
  .admin-realtime-stream-row
){
  column-gap:var(--gap-row)!important;
  row-gap:var(--gap-control)!important;
}
.app-switch-row{column-gap:var(--gap-surface)!important;row-gap:var(--gap-control)!important}

/* Main navigation/content rows. */
.channel,.member,.dm-row,.group-row,.mini-user,.voice-users .voice-presence-user{gap:var(--gap-control)!important}
.friend{gap:var(--gap-row)!important}
.userbar{gap:var(--gap-control)!important}
.sidebar-channel-item>.channel{column-gap:var(--gap-control)!important}

/* Compact message/composer relationships. */
.composer{gap:var(--gap-icon)!important}
.reactions{gap:var(--gap-icon)!important;margin-top:var(--gap-control)!important}
.pending-attachment,.file-attachment,.audio-attachment{gap:var(--gap-row)!important}
.reply-preview{margin-bottom:var(--gap-icon)!important}
.message-edit-help{padding-top:var(--gap-control)!important}

/* Headings: copy and actions can wrap without crowding each other. */
:is(
  .settings-page-head,
  .voice-settings-card-head,
  .security-section-head,
  .friend-section-head,
  .developer-panel-heading,
  .developer-section-heading,
  .developer-app-header,
  .developer-portal-header,
  .developer-doc-header,
  .developer-doc-section-heading,
  .group-files-detail-head,
  .group-files-header,
  .group-files-toolbar,
  .group-files-browser-head,
  .voice-channel-options-head,
  .admin-workspace-group-head,
  .admin-subsection-head,
  .admin-realtime-head,
  .admin-update-package-head,
  .admin-operation-live-head,
  .admin-operation-current
){
  column-gap:var(--gap-surface)!important;
  row-gap:var(--gap-control)!important;
}
.settings-content>.settings-page-head{margin-bottom:var(--gap-section)!important}
.developer-panel-heading{margin-bottom:var(--gap-surface)!important}
.developer-section-heading{margin-bottom:var(--gap-surface)!important}
.developer-doc-header{margin-bottom:var(--gap-section)!important}

/* Text belonging to one item stays close; independent items do not. */
:is(
  .settings-card,
  .account-cookie-card>div,
  .security-card-copy,
  .security-action-copy,
  .server-member-settings-identity,
  .admin-user-feature-identity,
  .admin-update-package-head>div,
  .admin-update-backup-info,
  .admin-database-backup-info,
  .admin-realtime-head>div,
  .admin-operation-live-title>div,
  .admin-operation-current>div,
  .spotify-connection-brand>div,
  .seek-ai-sidebar-intro>div,
  .seek-ai-diagnostic-check>div,
  .group-files-upload-copy,
  .developer-app-header>div:not(.developer-app-header-status),
  .developer-doc-step>div
) :is(h1,h2,h3,h4,strong)+:is(p,small,span){margin-top:var(--gap-icon)!important}
.settings-card small,.app-switch-row small{margin-top:var(--gap-icon)!important}
.account-detail-row span{margin-bottom:var(--gap-icon)!important}

/* Form stacks and field groups. */
.settings-field-stack{gap:var(--gap-control)!important}
:is(
  .developer-form label,
  .developer-authorize-card label,
  .developer-modal label,
  .server-settings-field,
  .profile-settings-form,
  .admin-settings-grid>label:not(.app-switch-row),
  .admin-number-grid label,
  .modal-administration .admin-workspace-card>label:not(.app-switch-row),
  .modal-administration .admin-livekit-fields>label:not(.app-switch-row),
  .modal-administration .spotify-admin-settings>label:not(.app-switch-row),
  .modal-administration .seek-ai-admin-settings>label:not(.app-switch-row)
){gap:var(--gap-control)!important}

/* Related fields/grids. */
:is(
  .permission-grid,
  .security-settings-group,
  .voice-input-mode-grid,
  .developer-status-grid,
  .developer-capability-grid,
  .developer-event-type-grid,
  .developer-permissions-grid,
  .admin-number-grid,
  .admin-update-version-grid,
  .admin-realtime-metrics,
  .server-theme-grid,
  .audit-log,
  .ban-list,
  .invite-list,
  .member-role-v2-list
){gap:var(--gap-row)!important}
:is(.voice-device-grid,.voice-volume-grid,.developer-settings-grid,.admin-update-workspace-grid,.developer-doc-two-column){gap:var(--gap-surface)!important}
:is(.security-settings-layout,.profile-settings-grid,.server-profile-layout){gap:var(--gap-section)!important}
.developer-form{gap:var(--gap-surface)!important}
.developer-doc-card{gap:var(--gap-row)!important}
.developer-doc-section{gap:var(--gap-surface)!important}
.developer-doc-content{gap:var(--gap-page)!important}

/* Lists of independent records need visible separation. */
:is(
  .admin-user-feature-list,
  .admin-update-backup-list,
  .admin-database-backup-list,
  .admin-realtime-stream-list,
  .developer-credential-list,
  .developer-security-list,
  .developer-server-list,
  .developer-token-list,
  .device-list,
  .group-files-upload-list
){gap:var(--gap-control)!important}

/* Standard cards use 16px internal separation between copy and controls. */
.settings-card{gap:var(--gap-surface)!important}
.account-card,.account-main,.account-profile-row,.account-cookie-card{gap:var(--gap-surface)!important}
.security-locked-card,.security-summary-card,.security-action-card,.security-error-card{gap:var(--gap-surface)!important}
.voice-settings-card-head{gap:var(--gap-surface)!important}

/* Surface-to-surface spacing. The first surface after a page heading does not gain a second top margin. */
.settings-content>.settings-page-head+:is(.settings-card,.voice-settings-card,.security-settings-layout,.account-hero,.account-details,.profile-settings-grid,.profile-preview-card,.friends-section){margin-top:0!important}
.settings-content>:is(.settings-card,.voice-settings-card,.security-settings-layout,.account-hero,.account-details,.profile-settings-grid,.profile-preview-card,.friends-section)+:is(.settings-card,.voice-settings-card,.security-settings-layout,.account-hero,.account-details,.profile-settings-grid,.profile-preview-card,.friends-section){margin-top:var(--gap-surface)!important}
.voice-settings-actions{margin-top:var(--gap-surface)!important}

/* Menus/popovers have an 8px inset; separators remain compact. */
:is(.context-menu,.server-menu-popover,.presence-popover){padding:var(--gap-control)!important}
:is(.context-menu,.server-menu-popover,.presence-popover)>button{gap:var(--gap-control)!important}
:is(.context-separator,.presence-separator){margin-block:var(--gap-icon)!important}

/* Overlays/feedback. */
.toast-stack{gap:var(--gap-control)!important}
.message-notification-stack{gap:var(--gap-row)!important}
.message-notification{gap:var(--gap-row)!important}
.cookie-consent{gap:var(--gap-surface)!important}
.messagebox-header{gap:var(--gap-surface)!important}
.messagebox-actions{gap:var(--gap-control)!important}
.modal-footer{gap:var(--gap-control)!important;padding-top:var(--gap-surface)!important}

/* Group Files uses the same rhythm as the rest of the application. */
.group-files-header{gap:var(--gap-row)!important}
.group-files-toolbar{gap:var(--gap-row)!important}
.group-files-header-actions,.group-files-toolbar-actions,.group-files-detail-actions,.group-files-editor-bar,.group-files-footer-actions{gap:var(--gap-control)!important}
.group-files-browser.view-grid .group-files-list{gap:var(--gap-row)!important}
.group-files-detail-head{margin-bottom:var(--gap-row)!important}

/* Voice controls keep tool clusters tight while settings/card content remains readable. */
body>.voice-stage .voice-stage-head-actions,
body>.voice-stage .voice-stage-view-switch,
body>.voice-stage .voice-stage-toolbar,
body>.voice-stage .callbar-group{gap:var(--gap-icon)!important}
body>.voice-stage .callbar{gap:var(--gap-control)!important}
.permission-row.app-permission-row{gap:var(--gap-row)!important}

/* Administration: inactive sections never participate in layout. */
.modal-administration [data-admin-section]:not(.is-active),
.modal-administration [data-admin-section][hidden]{display:none!important}

/* Administration uses the same relationship scale as the rest of the application. */
.modal-administration .admin-discord-section-head{
  gap:var(--gap-section)!important;
  margin-bottom:var(--gap-section)!important;
  padding-bottom:var(--gap-surface)!important;
}
.modal-administration .admin-overview-section.admin-command-center{gap:var(--space-5)!important}
.modal-administration .admin-overview-grid{gap:var(--gap-row)!important}
.modal-administration .admin-overview-grid article{gap:var(--gap-icon)!important}
.modal-administration :is(
  .admin-overview-actions,
  .admin-update-actions,
  .admin-update-zip-actions,
  .admin-database-backup-actions,
  .admin-database-backup-toolbar,
  .admin-realtime-head,
  .seek-ai-admin-model-row
){gap:var(--gap-control)!important}
.modal-administration :is(
  .admin-number-grid,
  .admin-update-version-grid,
  .admin-update-workspace-grid,
  .admin-livekit-fields,
  .admin-update-policy
){gap:var(--gap-row)!important}
.modal-administration .admin-workspace-card>.app-switch-row,
.modal-administration .admin-workspace-card .admin-update-policy>.app-switch-row,
.modal-administration .admin-workspace-card .admin-livekit-fields>.app-switch-row,
.modal-administration .spotify-admin-settings>.app-switch-row,
.modal-administration .seek-ai-admin-settings>.app-switch-row{gap:var(--gap-surface)!important}
.modal-administration .admin-operation-live{gap:var(--gap-row)!important}
.modal-administration .admin-operation-live-title{gap:var(--gap-control)!important}
.modal-administration .admin-operation-meta{gap:var(--gap-icon)!important}
.modal-administration .admin-operation-history{gap:var(--gap-control)!important}
.modal-administration #admin-section-updates,
.modal-administration #admin-section-database,
.modal-administration #admin-section-realtime{row-gap:var(--gap-surface)!important}
.modal-administration #admin-section-updates>:is(.admin-operation-live,.admin-update-policy,.admin-update-workspace-grid)+:is(.admin-operation-live,.admin-update-policy,.admin-update-workspace-grid),
.modal-administration #admin-section-database>:is(.admin-database-backup-toolbar,.admin-database-backup-list)+:is(.admin-database-backup-toolbar,.admin-database-backup-list),
.modal-administration #admin-section-realtime>:is(.admin-realtime-head,.admin-realtime-status,.admin-realtime-metrics,.admin-realtime-stream-list)+:is(.admin-realtime-head,.admin-realtime-status,.admin-realtime-metrics,.admin-realtime-stream-list){margin-top:0!important}


/* Authentication and account surfaces. */
.auth-brand-lockup,
.auth-beta-badge,
.auth-qr-entry-notice{gap:var(--gap-row)!important}
.profile-presence,
.profile-custom-status,
.profile-preview-status,
.spotify-profile-listeners{gap:var(--gap-control)!important}
.profile-role-list,
.server-member-role-pills,
.member-role-v2-chips{gap:var(--gap-icon)!important}
.profile-media-card,
.spotify-connection-card{gap:var(--gap-surface)!important}
.settings-unsaved-bar{gap:var(--gap-row)!important}

/* Emoji/GIF/media pickers: navigation is compact, content groups are not. */
.emoji-picker-head,
.status-emoji-picker-head,
.gif-picker-head>div{gap:var(--gap-row)!important}
.status-emoji-search-wrap,
.gif-categories{gap:var(--gap-control)!important}
.emoji-tabs,
.status-emoji-tabs,
body>.emoji-picker .emoji-tabs{gap:var(--gap-icon)!important}
.emoji-grid,
.status-emoji-grid,
body>.emoji-picker .emoji-grid{gap:var(--gap-icon)!important}
.gif-grid{column-gap:var(--gap-control)!important;row-gap:var(--gap-control)!important}
.message-embed{gap:var(--gap-row)!important}
.message-embed-title,
.message-component-button,
.message-gif-credit{gap:var(--gap-control)!important}

/* Server/channel/role management. */
.role-row,
.sortable-row,
.app-role-row,
.member-role-v2-row{gap:var(--gap-control)!important}
.role-editor-actions,
.invite-row-actions,
.app-channel-create-actions{gap:var(--gap-control)!important}
.invite-row,
.server-member-settings-row,
.app-role-member-identity,
.member-role-v2-head,
.channel-access-permission-copy{gap:var(--gap-surface)!important}
.app-role-tabs,
.member-role-v2-footer,
.app-channel-create-head{gap:var(--gap-surface)!important}
.app-permission-sections,
.app-channel-settings-form{gap:var(--gap-section)!important}
.app-channel-create-body{gap:var(--space-5)!important}
.app-channel-create-fields,
.voice-channel-options-grid{gap:var(--gap-surface)!important}
.app-channel-type-picker,
.member-role-v2-group-list,
.channel-access-target-list{gap:var(--gap-control)!important}
.app-channel-settings-identity,
.channel-access-channel-identity,
.channel-access-target,
.rtc-permission-row,
.voice-channel-routing-summary{gap:var(--gap-control)!important}
.channel-access-resolution-note,
.channel-access-hierarchy-notice,
.rtc-permission-details{gap:var(--gap-row)!important}
.server-settings-shell .server-settings-form{gap:var(--space-5)!important}
.server-settings-shell .server-inactive-settings,
.advanced-user-settings,
.background-notification-setting,
.admin-user-features{gap:var(--gap-surface)!important}

/* Role/member lists use compact row stacking but readable row internals. */
.server-member-settings-list,
.app-role-sidebar>.role-list-scroll{gap:var(--gap-icon)!important}
.member-role-v2-group-list{gap:var(--gap-icon)!important}
.member-role-option>span,
.member-role-option-main,
.member-role-v2-summary-head,
.member-role-v2-group>header{gap:var(--gap-control)!important}

/* Voice settings, excluding deliberate compact in-call breakpoint controls. */
.voice-channel-options-grid{gap:var(--gap-surface)!important}
.voice-ptt-settings{gap:var(--gap-surface)!important}
.voice-reset-card{gap:var(--space-5)!important}
.voice-camera-preview>div{gap:var(--gap-control)!important}
.voice-participant-placeholder{gap:var(--gap-control)!important}

/* Developer Portal: keep prose hierarchy looser than controls. */
.developer-hero{gap:var(--gap-page)!important}
.developer-app-card,
.developer-modal{gap:var(--gap-surface)!important}
.developer-app-card-copy,
.developer-token-summary>div{gap:var(--gap-icon)!important}
.developer-app-header,
.developer-bot-profile,
.developer-installation{gap:var(--space-5)!important}
.developer-sidebar-intro,
.developer-intents-grid,
.developer-intent-card,
.developer-check-row,
.developer-permissions-grid,
.developer-install-permissions,
.developer-token-warning,
.developer-endpoint,
.developer-callout,
.developer-step-grid{gap:var(--gap-row)!important}
.developer-tabs>button,
.developer-tab,
.developer-authorize-actions,
.developer-doc-download-actions button,
.developer-application-doc-actions{gap:var(--gap-control)!important}
.developer-credential-list,
.developer-security-list{gap:var(--gap-row)!important}
.developer-detail-field,
.developer-bot-username-field{gap:var(--gap-control)!important}

/* Spotify, AI and application integrations. */
.spotify-connection-brand{gap:var(--gap-surface)!important}
.seek-ai-suggestions,
.seek-ai-sidebar-intro,
.seek-ai-message,
.seek-ai-diagnostic-checks{gap:var(--gap-row)!important}
.seek-ai-diagnostic-models{gap:var(--gap-icon)!important}

/* File surfaces and uploads. */
.group-files-title,
.group-files-browser-head,
.group-files-upload-box>header>div,
.group-files-upload-row,
.group-files-info-line{gap:var(--gap-row)!important}
.group-files-breadcrumbs,
.group-files-navigation{gap:var(--gap-icon)!important}
.group-files-breadcrumbs button,
.group-files-search,
.group-files-detail-actions button,
.group-files-editor-bar button{gap:var(--gap-control)!important}
.group-files-list,
.group-files-upload-list{gap:var(--gap-control)!important}
.group-files-status,
.group-files-dialog>div{gap:var(--gap-row)!important}

/* Skeletons mirror the real UI rhythm to avoid layout jumps after hydration. */
.sk-channel-row,
.sk-sidebar-user,
.sk-sidebar-feature,
.sk-member-row,
.message-skeleton-head,
.sk-search-result,
.sk-developer-card-copy{gap:var(--gap-control)!important}
.sk-settings-region,
.sk-developer-app-card{gap:var(--gap-surface)!important}
.sk-settings-heading,
.sk-profile-body,
.sk-search-results{gap:var(--gap-row)!important}

/* Image editing controls follow the same toolbar/action rhythm. */
.image-editor-toolbar{gap:var(--gap-icon)!important}
.image-editor-zoom,
.image-editor-actions{gap:var(--gap-control)!important}

/* Prevent legacy per-component margins from defeating flex/grid gaps in known action rows. */
:is(
  .actions,.inline,.modal-actions,.modal-footer,.dialog-actions,.messagebox-actions,
  .settings-page-actions,.settings-row-actions,.voice-settings-actions,.channel-actions,
  .category-actions,.group-actions,.friend .actions,.account-detail-actions,
  .invite-row-actions,.cookie-consent-actions,.server-profile-upload-actions,
  .spotify-connection-actions,.developer-form-actions,.developer-authorize-actions,
  .developer-doc-download-actions,.group-files-detail-actions,.admin-overview-actions,
  .admin-update-actions,.admin-update-zip-actions,.admin-database-backup-toolbar,
  .admin-database-backup-actions
)>:is(button,a){margin-inline:0!important}

/* v1.7.1.41 — complete flow-spacing audit.
   v1.7.1.40 normalized child gaps; this layer also normalizes the space BETWEEN
   independent blocks that are not children of the same flex/grid layout.  Keep
   dense controls compact, rows readable, surfaces distinct, and page sections
   visibly separated without stacking arbitrary legacy margins. */
:root{
  --gap-block:var(--space-5);
}

/* Page/section flow: headings belong to their content; independent surfaces do not touch. */
.developer-section-heading{
  margin:var(--gap-section) 2px var(--gap-surface)!important;
}
.developer-landing>.developer-app-grid+.developer-owner-audit,
.developer-landing>.developer-panel+.developer-panel{
  margin-top:var(--gap-section)!important;
}
.developer-owner-audit{
  min-width:0;
}
.developer-tab-content,
.developer-operations,
.developer-installation,
.developer-application-docs,
.developer-settings-column{
  row-gap:var(--gap-block)!important;
}
.developer-empty.compact{
  min-height:0!important;
  padding:var(--gap-section)!important;
  gap:var(--gap-control)!important;
}
.developer-panel>:is(.developer-token-list,.developer-audit-list,.developer-server-list,.developer-operation-table,.developer-id-grid,.developer-intents-grid,.developer-permissions-grid)+:is(.developer-token-warning,.developer-form-actions,.developer-detail-field,button){
  margin-top:var(--gap-surface)!important;
}
.developer-panel>.developer-token-warning+:is(button,.developer-form-actions){
  margin-top:var(--gap-row)!important;
}

/* Settings pages: 16px inside a surface, 20px between independent surfaces. */
.settings-content>:is(.settings-card,.voice-settings-card,.security-settings-layout,.account-hero,.account-details,.profile-settings-grid,.profile-preview-card,.friends-section)+:is(.settings-card,.voice-settings-card,.security-settings-layout,.account-hero,.account-details,.profile-settings-grid,.profile-preview-card,.friends-section){
  margin-top:var(--gap-block)!important;
}
.settings-content>.settings-page-head{
  margin-bottom:var(--gap-section)!important;
}
:is(.settings-card,.voice-settings-card,.security-action-card,.security-summary-card,.profile-preview-card)>.modal-footer,
:is(.settings-card,.voice-settings-card,.security-action-card,.security-summary-card,.profile-preview-card)>.actions{
  margin-top:var(--gap-surface)!important;
}
.modal-footer,.messagebox-actions,.dialog-actions{
  padding-top:var(--gap-block)!important;
}

/* Common vertical stacks that previously mixed 5/7/9/10/14/18px legacy gaps. */
:is(.messagebox-header,.server-theme-card,.server-profile-preview-body,.invite-row,.audit-entry,.ban-row,.message-notification){
  gap:var(--gap-row)!important;
}
:is(.theme-card,.density-card,.status-emoji-preview,.status-emoji-search-wrap,.profile-custom-status,.profile-preview-status,.voice-channel-button,.mention-autocomplete button,.group-friend,.sortable-row){
  gap:var(--gap-control)!important;
}
:is(.typing-dots,.voice-users .voice-presence-flags,.status-emoji-tabs,.status-emoji-grid,.member-role-list,.channel-access-target-list){
  gap:var(--gap-icon)!important;
}
:is(.account-card,.account-main,.account-profile-row,.account-detail-row,.server-accent-setting){
  gap:var(--gap-surface)!important;
}
.category{
  margin-top:var(--gap-surface)!important;
  margin-bottom:var(--gap-control)!important;
}
.dm-user-section>.dm-user-section-title{
  margin-top:var(--gap-surface)!important;
  margin-bottom:var(--gap-control)!important;
}

/* Lists and cards: distinguish row internals from separation between records. */
:is(.audit-log,.ban-list,.device-list,.developer-token-list,.developer-audit-list,.developer-server-list,.group-files-upload-list){
  gap:var(--gap-control)!important;
}
:is(.audit-entry,.ban-row,.developer-token-row,.developer-audit-row,.developer-server-row,.group-files-upload-row){
  column-gap:var(--gap-row)!important;
  row-gap:var(--gap-control)!important;
}

/* Files, media and feedback surfaces need visible block boundaries too. */
.group-files-section+.group-files-section{
  margin-top:var(--gap-block)!important;
}
:is(.pending-attachment,.file-attachment,.audio-attachment,.media-file-head){
  gap:var(--gap-row)!important;
}
.toast-stack,.message-notification-stack{
  gap:var(--gap-control)!important;
}

/* Administration already has section visibility isolation; keep internal block rhythm explicit. */
.modal-administration :is(#admin-section-updates,#admin-section-database,#admin-section-realtime,#admin-section-development){
  row-gap:var(--gap-block)!important;
}

/* Wrapped controls must preserve vertical distance, not only horizontal gap. */
:is(.actions,.inline,.modal-actions,.modal-footer,.dialog-actions,.messagebox-actions,.settings-page-actions,.settings-row-actions,.voice-settings-actions,.developer-form-actions,.developer-authorize-actions,.developer-doc-download-actions,.developer-application-doc-actions,.group-files-detail-actions,.group-files-header-actions,.admin-quick-actions,.admin-overview-actions,.admin-update-actions,.admin-update-zip-actions,.admin-database-backup-toolbar,.admin-database-backup-actions){
  column-gap:var(--gap-control)!important;
  row-gap:var(--gap-control)!important;
}

/* Remaining UI chrome found by the spacing audit.  Deliberate game-board geometry
   (1px tile/territory gaps) is intentionally excluded from this normalization. */
:is(.developer-token-reveal,.developer-endpoint-list,.developer-bot-avatar-area,.developer-explorer-grid>label,.developer-calculator-result>label){gap:var(--gap-control)!important}
.developer-doc-layout{gap:var(--gap-section)!important}
.developer-language-tabs,.developer-sidebar-skeleton{gap:var(--gap-icon)!important}
:is(.developer-bot-profile-fields,.developer-language-download-bar,.developer-calculator-result,.developer-operation-table-head,.developer-operation-table-row,.developer-sidebar-skeleton-row){gap:var(--gap-row)!important}
.developer-status-pill{gap:var(--gap-icon)!important}

:is(.voice-stage-title,.voice-stage-connection,.voice-stage-title-line,.voice-focus-strip,.voice-mode-card>span){gap:var(--gap-control)!important}
:is(.voice-stage-status,.voice-tile-flags,.voice-participant-row-flags){gap:var(--gap-icon)!important}

:is(.admin-versioning-guide,.admin-update-status,.admin-realtime-stream-title){gap:var(--gap-row)!important}
:is(.admin-versioning-levels,.admin-update-counts,.admin-update-backup-meta,.server-admin-entitlements,.admin-realtime-stream-values){gap:var(--gap-control)!important}

:is(.role-create-dialog,.density-choice,.broadcast-placeholder,.member-role-v2-filters,.app-role-sidebar-heading){gap:var(--gap-control)!important}
.channel-order-sections{gap:var(--gap-surface)!important}
:is(.server-theme-card-copy,.theme-preview-sidebar){gap:var(--gap-icon)!important}
:is(.server-theme-preview-rail,.server-theme-preview-sidebar,.server-theme-preview-chat){gap:var(--gap-control)!important}
.server-theme-live-demo-layout :is(.server-theme-preview-rail,.server-theme-preview-sidebar,.server-theme-preview-chat){gap:var(--gap-control)!important}

/* Game panels use the shared UI rhythm while board/tile spacing remains game-specific. */
:is(.dm-game-loading,.dm-game-empty,.dm-game-status,.dm-game-player,.frontiers-team-options,.game-ai-options){gap:var(--gap-row)!important}
:is(.dm-game-controls,.frontiers-action-box,.frontiers-turn-order,.frontiers-player-list,.frontiers-invite-list,.frontiers-region-legend,.frontiers-team-mode-banner,.game-ai-toggle,.game-ai-target,.estate-player-list,.estate-player,.estate-dice,.estate-action-box,.estate-event,.estate-player-strip){gap:var(--gap-control)!important}
:is(.dm-game-history>div,.frontiers-battle,.estate-properties>div){gap:var(--gap-icon)!important}

:is(.sidebar-listen-along-slot .spotify-listen-along-banner,.sidebar-listen-along-slot .spotify-listen-along-host-banner){gap:var(--gap-control)!important}
.spotify-profile-activity>div{gap:var(--gap-icon)!important}

/* Loading states use the same spacing as the hydrated controls they represent. */
:is(.sk-search-result-head,.sk-developer-header-status,.sk-developer-tabs,.sk-developer-detail){gap:var(--gap-control)!important}
:is(.sk-voice-tile,.sk-developer-header-copy,.sk-developer-actions,.sk-developer-authorize-brand){gap:var(--gap-row)!important}

/* v1.7.1.46 — configurable Spotify-compatible provider identity. */
.spotify-provider-home{color:inherit;text-decoration:none;max-width:100%;width:max-content}
.spotify-provider-home:hover,.spotify-provider-home:focus-visible{text-decoration:underline;text-underline-offset:2px;outline:none}
.spotify-logo-dot{color:var(--accent)!important;font-family:inherit;font-weight:800}

/* Independent Spotify-compatible provider: keep connection cards separated while reusing the application music integration visual contract. */
.spotify-connections-stack{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gap-section,24px);min-width:0}

/* Spotify-Like provider parity: keep the Discord-style activity card geometry
   stable even when a compatible provider has no artwork, and rotate independent
   Spotify + Spotify-Like compact statuses instead of hiding the second source. */
.spotify-profile-art-placeholder{width:64px;height:64px;border-radius:5px;display:grid;place-items:center;align-self:start;background:rgba(30,215,96,.12);border:1px solid rgba(30,215,96,.24);color:#1ed760;font-size:30px;font-weight:700;line-height:1}
.activity-status-rotator[data-status-rotator="music-multi"]>.activity-status-slot:not(.is-active){opacity:0;visibility:hidden;pointer-events:none}
.activity-status-rotator[data-status-rotator="music-multi"]>.activity-status-slot.is-active{opacity:1;visibility:visible;pointer-events:auto}

/* Profile music activity is persistent content, never part of the 5-second compact-status carousel. */
.profile-card .profile-activity-host [data-status-rotator]{display:contents!important}
.profile-card .profile-activity-host .activity-status-slot{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
.profile-card .profile-activity-host .activity-status-slot[aria-hidden="true"]{opacity:1!important;visibility:visible!important;pointer-events:auto!important}

/* Application 1.7.1.82 — Discord-style application-wide scrollbars
   Keep component scrollbars intentionally hidden by their own higher-specificity rules. */
:root{
  --discord-scrollbar-thumb:#1a1b1e;
  --discord-scrollbar-thumb-hover:#111214;
  --discord-scrollbar-thumb-active:#0c0d0e;
  --discord-scrollbar-track:#2b2d31;
}
html,body{
  scrollbar-color:var(--discord-scrollbar-thumb) var(--discord-scrollbar-track);
}
*{
  scrollbar-width:auto;
  scrollbar-color:var(--discord-scrollbar-thumb) var(--discord-scrollbar-track);
}
*::-webkit-scrollbar{
  width:16px;
  height:16px;
}
*::-webkit-scrollbar-track{
  border:4px solid transparent!important;
  border-radius:8px!important;
  background:var(--discord-scrollbar-track)!important;
  background-clip:padding-box!important;
}
*::-webkit-scrollbar-thumb{
  min-width:36px;
  min-height:36px;
  border:4px solid transparent!important;
  border-radius:8px!important;
  background:var(--discord-scrollbar-thumb)!important;
  background-clip:padding-box!important;
}
*::-webkit-scrollbar-thumb:hover{
  background:var(--discord-scrollbar-thumb-hover)!important;
  background-clip:padding-box!important;
}
*::-webkit-scrollbar-thumb:active{
  background:var(--discord-scrollbar-thumb-active)!important;
  background-clip:padding-box!important;
}

*::-webkit-scrollbar-button{
  display:none!important;
  width:0!important;
  height:0!important;
}
*::-webkit-scrollbar-corner{
  background:var(--discord-scrollbar-track)!important;
}
html::-webkit-scrollbar,body::-webkit-scrollbar{
  width:16px;
  height:16px;
}
html::-webkit-scrollbar-track,body::-webkit-scrollbar-track{
  background:var(--discord-scrollbar-track)!important;
}
html::-webkit-scrollbar-thumb,body::-webkit-scrollbar-thumb{
  border:4px solid var(--discord-scrollbar-track)!important;
  background:var(--discord-scrollbar-thumb)!important;
  background-clip:padding-box!important;
}
html::-webkit-scrollbar-thumb:hover,body::-webkit-scrollbar-thumb:hover{
  background:var(--discord-scrollbar-thumb-hover)!important;
  background-clip:padding-box!important;
}

/* Application 1.7.1.83 — Discord-style profile modal fit.
   Profile surfaces compact before overflowing. Wheel/touch/keyboard scrolling remains
   available as an accessibility fallback, but Discord does not expose a permanent
   scrollbar inside the profile card. */
.modal-backdrop > .modal.modal-profile > .profile-card{
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior-y:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none!important;
  -ms-overflow-style:none;
  scrollbar-gutter:auto!important;
}
.modal-backdrop > .modal.modal-profile > .profile-card::-webkit-scrollbar{
  display:none!important;
  width:0!important;
  height:0!important;
}

/* Prefer fitting the complete Discord profile card in the viewport instead of
   immediately relying on overflow. These rules only tighten vertical rhythm. */
@media (min-width:701px) and (max-height:820px){
  .modal-backdrop > .modal.modal-profile{
    max-height:calc(100dvh - 24px);
  }
  .modal-profile .profile-banner{height:96px}
  .modal-profile .profile-avatar-wrap{top:-36px;margin-left:20px}
  .modal-profile .profile-avatar-wrap .avatar.large{width:74px;height:74px;border-width:5px;font-size:27px}
  .modal-profile .profile-body{padding:42px 20px 20px}
  .modal-profile .profile-body h2{font-size:22px;margin-bottom:4px}
  .modal-profile .profile-custom-status{margin:10px 0;padding:8px 10px}
  .modal-profile .profile-section{margin-top:12px;padding-top:10px}
  .modal-profile .spotify-profile-activity{grid-template-columns:56px minmax(0,1fr);gap:10px;padding:10px;margin:8px 0}
  .modal-profile .spotify-profile-activity img,
  .modal-profile .spotify-profile-art-placeholder{width:56px;height:56px}
  .modal-profile .profile-role-list{gap:5px}
  .modal-profile .profile-role{padding:3px 6px}
}

@media (min-width:701px) and (max-height:680px){
  .modal-backdrop > .modal.modal-profile{max-height:calc(100dvh - 16px)}
  .modal-profile .profile-banner{height:82px}
  .modal-profile .profile-avatar-wrap{top:-32px;margin-left:18px}
  .modal-profile .profile-avatar-wrap .avatar.large{width:68px;height:68px;border-width:5px;font-size:25px}
  .modal-profile .profile-body{padding:36px 18px 16px}
  .modal-profile .profile-body h2{font-size:20px}
  .modal-profile .profile-custom-status{margin:8px 0;padding:7px 9px}
  .modal-profile .profile-section{margin-top:9px;padding-top:8px}
  .modal-profile .profile-section h3{margin-bottom:5px}
  .modal-profile .spotify-profile-activity{grid-template-columns:50px minmax(0,1fr);gap:8px;padding:8px;margin:7px 0}
  .modal-profile .spotify-profile-activity img,
  .modal-profile .spotify-profile-art-placeholder{width:50px;height:50px}
  .modal-profile .spotify-profile-actions{margin-top:4px}
  .modal-profile .profile-role-list{gap:4px}
  .modal-profile .profile-role{padding:2px 5px;font-size:11px}
  .modal-profile .profile-body>.primary.full{min-height:36px;margin-top:10px}
}

/* Application 1.7.1.86 — Discord-style full profile modal redesign.
   Keep the profile hierarchy close to Discord: banner + overlapping avatar, identity/action
   row, lightweight custom status, activity card, then a compact information surface. */
.modal-backdrop > .modal.modal-profile{
  width:min(600px,calc(100vw - 32px));
  max-width:calc(100vw - 32px);
  max-height:min(780px,calc(100dvh - 32px));
  border-radius:16px;
  background:var(--panel);
  box-shadow:0 24px 80px rgba(0,0,0,.62),0 0 0 1px rgba(0,0,0,.18);
}
.modal-backdrop > .modal.modal-profile > .profile-card{
  position:relative;
  background:var(--panel);
  color:var(--text);
  cursor:default;
}
/* Static profile content keeps the normal cursor. Only actual controls advertise
   clickability, matching Discord's interaction affordances. */
.modal-profile :is(.profile-banner,.profile-avatar-wrap,.profile-body,.profile-header-row,.profile-identity-block,.profile-name-heading,.profile-display-name,.profile-account-name,.profile-custom-status-host,.profile-custom-status,.profile-activity-host,.profile-info-card,.profile-section,.profile-meta-grid,.profile-meta-item,.profile-role-list,.profile-role){
  cursor:default;
}
.modal-profile :is(button:not(:disabled),a[href],[role="button"]:not([aria-disabled="true"])){
  cursor:pointer;
}
.modal-profile .profile-banner{
  height:132px;
  min-height:132px;
  border-radius:16px 16px 0 0;
  background-color:var(--accent);
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
}
.modal-profile .profile-avatar-wrap{
  top:-48px;
  margin-left:22px;
  z-index:3;
}
.modal-profile .profile-avatar-wrap .avatar.large{
  width:96px;
  height:96px;
  border:7px solid var(--panel);
  font-size:34px;
  box-shadow:0 0 0 1px rgba(0,0,0,.08);
}
.modal-profile .profile-avatar-wrap .avatar.large .status-dot{
  width:23px;
  height:23px;
  right:1px;
  bottom:1px;
  border-width:5px;
  border-color:var(--panel);
}
.modal-profile .profile-body{
  padding:58px 20px 20px;
}
.modal-profile .profile-header-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  min-width:0;
  margin-bottom:10px;
}
.modal-profile .profile-identity-block{
  min-width:0;
  flex:1 1 auto;
}
.modal-profile .profile-name-heading{
  min-width:0;
  margin:0;
  color:var(--strong);
  font-size:24px;
  font-weight:800;
  line-height:30px;
  letter-spacing:-.015em;
  white-space:nowrap;
  overflow:visible;
}
.modal-profile .profile-name-heading>.profile-display-name{
  min-width:0;
  flex:0 1 auto;
  max-width:100%;
  color:inherit;
  font:inherit;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.modal-profile .profile-name-heading>.profile-bot-tag,
.modal-profile .profile-name-heading>.app-owner-badge{
  flex:0 0 auto;
  margin-left:6px;
}
.modal-profile .profile-account-name{
  min-width:0;
  margin-top:1px;
  color:var(--muted);
  font-size:14px;
  line-height:20px;
}
.modal-profile .profile-account-name .username-tag-text{
  max-width:100%;
  color:inherit;
}
.modal-profile .profile-account-name :is(.username-name-text,.profile-tag){
  color:inherit;
  font-size:inherit;
  font-weight:500;
}
.modal-profile .profile-header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex:0 0 auto;
  min-height:36px;
}
.modal-profile .profile-header-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:36px;
  max-width:190px;
  padding:7px 14px;
  border:0;
  border-radius:8px;
  background:var(--accent);
  color:#fff;
  font-weight:700;
  line-height:18px;
  cursor:pointer;
  transition:background-color .12s ease,filter .12s ease,transform .06s ease;
}
.modal-profile .profile-header-action:hover{filter:brightness(1.08)}
.modal-profile .profile-header-action:active{transform:translateY(1px)}
.modal-profile .profile-header-action:focus-visible{outline:2px solid var(--strong);outline-offset:2px}
.modal-profile .profile-header-action:disabled{opacity:.55;cursor:wait;transform:none}
.modal-profile .profile-header-action .app-icon{
  width:16px;
  height:16px;
  flex:0 0 auto;
}
.modal-profile .profile-header-action span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.modal-profile .profile-custom-status-host:empty,
.modal-profile .profile-activity-host:empty{display:none}
.modal-profile .profile-custom-status{
  min-width:0;
  margin:8px 0 0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--text);
  font-size:14px;
  line-height:20px;
}
.modal-profile .profile-custom-status>.custom-status-text{
  white-space:normal;
  overflow-wrap:anywhere;
  text-overflow:clip;
}
.modal-profile .profile-activity-host{
  margin-top:14px;
}
.modal-profile .spotify-profile-activity{
  grid-template-columns:60px minmax(0,1fr);
  gap:12px;
  margin:0;
  padding:12px;
  border:0;
  border-radius:8px;
  background:var(--rail);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--muted) 14%,transparent);
}
.modal-profile .spotify-profile-activity img,
.modal-profile .spotify-profile-art-placeholder{
  width:60px;
  height:60px;
  border-radius:4px;
}
.modal-profile .profile-info-card{
  margin-top:14px;
  padding:14px;
  border-radius:8px;
  background:var(--rail);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--muted) 12%,transparent);
}
.modal-profile .profile-section{
  margin:0;
  padding:0;
  border:0;
}
.modal-profile .profile-section+.profile-section{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid color-mix(in srgb,var(--muted) 19%,transparent);
}
.modal-profile .profile-section h3,
.modal-profile .profile-meta-item h3{
  margin:0 0 6px;
  color:var(--strong);
  font-size:11px;
  font-weight:800;
  line-height:14px;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.modal-profile .profile-section p,
.modal-profile .profile-meta-item p{
  margin:0;
  color:var(--text);
  font-size:14px;
  line-height:20px;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.modal-profile .profile-empty-text{color:var(--muted)!important}
.modal-profile .profile-meta-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:16px;
}
.modal-profile .profile-meta-item{min-width:0}
.modal-profile .profile-last-connection{grid-column:1/-1}
.modal-profile .profile-role-list{
  gap:5px;
}
.modal-profile .profile-role{
  min-height:24px;
  padding:3px 7px;
  border:0;
  border-radius:4px;
  background:color-mix(in srgb,var(--bg) 72%,var(--rail));
  color:var(--text);
  font-size:12px;
  line-height:18px;
}
.modal-profile .profile-role i{
  width:10px;
  height:10px;
}

/* Discord profile close control sits over the banner and stays visually secondary. */
.modal-backdrop > .modal.modal-profile > .close{
  top:12px!important;
  right:12px!important;
  width:32px;
  height:32px;
  padding:7px!important;
  border:0!important;
  border-radius:50%!important;
  background:rgba(0,0,0,.52)!important;
  color:#fff!important;
  box-shadow:0 1px 3px rgba(0,0,0,.25);
  backdrop-filter:none;
}
.modal-backdrop > .modal.modal-profile > .close:hover,
.modal-backdrop > .modal.modal-profile > .close:focus-visible{
  background:rgba(0,0,0,.72)!important;
}

:root[data-theme="light"] .modal-backdrop > .modal.modal-profile,
:root[data-theme="light"] .modal-backdrop > .modal.modal-profile > .profile-card{
  background:#fff!important;
}
:root[data-theme="light"] .modal-profile .profile-avatar-wrap .avatar.large,
:root[data-theme="light"] .modal-profile .profile-avatar-wrap .avatar.large .status-dot{
  border-color:#fff!important;
}
:root[data-theme="light"] .modal-profile :is(.profile-info-card,.spotify-profile-activity){
  background:#f2f3f5!important;
  box-shadow:inset 0 0 0 1px #d4d7dc;
}
:root[data-theme="light"] .modal-profile .profile-role{background:#e3e5e8}

/* Short desktop viewports compact the profile without changing its visual hierarchy. */
@media (min-width:701px) and (max-height:820px){
  .modal-backdrop > .modal.modal-profile{max-height:calc(100dvh - 24px)}
  .modal-profile .profile-banner{height:112px;min-height:112px}
  .modal-profile .profile-avatar-wrap{top:-43px}
  .modal-profile .profile-avatar-wrap .avatar.large{width:86px;height:86px;border-width:6px;font-size:31px}
  .modal-profile .profile-avatar-wrap .avatar.large .status-dot{width:21px;height:21px;border-width:4px}
  .modal-profile .profile-body{padding:51px 18px 18px}
  .modal-profile .profile-name-heading{font-size:22px;line-height:27px}
  .modal-profile .profile-header-row{margin-bottom:7px}
  .modal-profile .profile-activity-host,.modal-profile .profile-info-card{margin-top:10px}
  .modal-profile .profile-info-card{padding:12px}
  .modal-profile .profile-section+.profile-section{margin-top:11px;padding-top:11px}
}
@media (min-width:701px) and (max-height:680px){
  .modal-backdrop > .modal.modal-profile{max-height:calc(100dvh - 16px)}
  .modal-profile .profile-banner{height:92px;min-height:92px}
  .modal-profile .profile-avatar-wrap{top:-36px;margin-left:18px}
  .modal-profile .profile-avatar-wrap .avatar.large{width:74px;height:74px;border-width:5px;font-size:27px}
  .modal-profile .profile-avatar-wrap .avatar.large .status-dot{width:19px;height:19px;border-width:4px}
  .modal-profile .profile-body{padding:42px 16px 15px}
  .modal-profile .profile-name-heading{font-size:20px;line-height:24px}
  .modal-profile .profile-account-name{font-size:13px;line-height:18px}
  .modal-profile .profile-header-action{min-height:32px;padding:5px 10px;border-radius:7px}
  .modal-profile .profile-custom-status{margin-top:5px;font-size:13px;line-height:18px}
  .modal-profile .profile-activity-host,.modal-profile .profile-info-card{margin-top:8px}
  .modal-profile .spotify-profile-activity{grid-template-columns:50px minmax(0,1fr);gap:9px;padding:9px}
  .modal-profile .spotify-profile-activity img,.modal-profile .spotify-profile-art-placeholder{width:50px;height:50px}
  .modal-profile .profile-info-card{padding:10px}
  .modal-profile .profile-section+.profile-section{margin-top:8px;padding-top:8px}
  .modal-profile .profile-section h3,.modal-profile .profile-meta-item h3{margin-bottom:4px}
  .modal-profile .profile-section p,.modal-profile .profile-meta-item p{font-size:13px;line-height:18px}
}

/* v1.7.2.4 — Web Push readiness diagnostics. */
.admin-web-push-diagnostics{display:grid;gap:14px}
.admin-web-push-summary{display:grid;gap:4px;padding:13px 14px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}
.admin-web-push-summary .admin-web-push-state{font-weight:800;color:var(--strong)}
.admin-web-push-summary small{color:var(--muted);line-height:1.4}
.admin-web-push-diagnostics[data-tone="success"] .admin-web-push-summary{border-color:color-mix(in srgb,#23a55a 38%,var(--border));background:color-mix(in srgb,#23a55a 6%,var(--panel))}
.admin-web-push-diagnostics[data-tone="success"] .admin-web-push-state{color:#23a55a}
.admin-web-push-diagnostics[data-tone="danger"] .admin-web-push-summary{border-color:color-mix(in srgb,var(--danger) 42%,var(--border));background:color-mix(in srgb,var(--danger) 5%,var(--panel))}
.admin-web-push-diagnostics[data-tone="danger"] .admin-web-push-state{color:var(--danger)}
.admin-web-push-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:8px}
.admin-web-push-check{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid var(--border);border-radius:9px;background:var(--panel)}
.admin-web-push-check>span{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:50%;font-size:11px;font-weight:900;background:color-mix(in srgb,var(--muted) 14%,transparent);color:var(--muted)}
.admin-web-push-check>div{min-width:0;display:grid;gap:2px}.admin-web-push-check strong{font-size:12px;color:var(--strong)}.admin-web-push-check small{font-size:10px;color:var(--muted)}
.admin-web-push-check.ok>span{background:color-mix(in srgb,#23a55a 16%,transparent);color:#23a55a}.admin-web-push-check.failed>span{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger)}
.admin-web-push-config{display:grid;gap:12px;padding:14px;border:1px solid var(--border);border-radius:11px;background:color-mix(in srgb,var(--panel) 88%,var(--bg))}
.admin-web-push-config-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:14px;align-items:end}.admin-web-push-config-head>div{display:grid;gap:3px}.admin-web-push-config-head>div>strong{color:var(--strong);font-size:14px}.admin-web-push-config-head>div>small,.admin-web-push-mode-copy small{color:var(--muted);line-height:1.4}.admin-web-push-config-head label{display:grid;gap:6px;font-size:12px;font-weight:700;color:var(--text)}
.admin-web-push-auto-panel,.admin-web-push-manual-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;padding-top:12px;border-top:1px solid var(--border)}.admin-web-push-auto-panel[hidden],.admin-web-push-manual-panel[hidden]{display:none!important}.admin-web-push-mode-copy{grid-column:1/-1;display:grid;gap:3px}.admin-web-push-auto-panel label,.admin-web-push-manual-panel label{display:grid;gap:6px;min-width:0;font-size:12px;font-weight:700;color:var(--text)}.admin-web-push-auto-panel label small,.admin-web-push-manual-panel label small{font-weight:400;color:var(--muted);line-height:1.4}.admin-web-push-auto-panel button,.admin-web-push-manual-panel button{justify-self:start;align-self:end}.admin-web-push-manual-panel textarea{resize:vertical;min-height:74px;font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}.admin-web-push-manual-private{min-height:116px!important}.admin-web-push-current-public,.admin-web-push-effective-subject{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:11px}.admin-web-push-private-status{min-height:1.4em}
.admin-web-push-actions{display:flex;align-items:center;gap:12px;padding-top:2px}.admin-web-push-actions small{color:var(--muted);line-height:1.4}.admin-web-push-actions button{flex:none}
@media(max-width:640px){.admin-web-push-config-head{grid-template-columns:1fr}.admin-web-push-auto-panel,.admin-web-push-manual-panel{grid-template-columns:1fr}.admin-web-push-auto-panel button,.admin-web-push-manual-panel button{width:100%;justify-self:stretch}.admin-web-push-actions{align-items:stretch;flex-direction:column}.admin-web-push-actions button{width:100%}}

/* v1.7.2.6 — account logout is a first-class action on every layout. */
.account-logout-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:12px;border-color:color-mix(in srgb,var(--danger) 34%,var(--border,#3f4147));background:color-mix(in srgb,var(--danger) 7%,var(--settings-card-bg,var(--panel)))}
.account-logout-card>div{display:grid;gap:5px;min-width:0;flex:1}.account-logout-card small{color:var(--muted);line-height:1.4}.account-logout-card .account-logout{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:none;white-space:nowrap}.account-logout-card .account-logout .app-icon{width:17px;height:17px}

/* v1.7.2.9 — resilient image presentation. */
.avatar-fallback-initial{display:grid;place-items:center;width:100%;height:100%;border-radius:inherit;font:inherit;font-weight:800;color:inherit;line-height:1}
.image-attachment.load-error .image-skeleton{display:grid;gap:10px;align-content:center;justify-items:center;padding:16px;text-align:center}
.image-attachment.load-error .image-skeleton i{display:none}
.image-attachment.load-error .image-open img{opacity:0}
.image-attachment .image-retry{display:none;position:relative;z-index:3;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 11px;border-radius:8px}
.image-attachment.load-error .image-retry{display:inline-flex}
.image-attachment .image-retry .app-icon{width:16px;height:16px}
.image-attachment .image-retry b{font-size:12px}

/* 1.7.2.11 — Connections cards use a stable content hierarchy on every viewport. */
.spotify-connection-card.music-connection-card{
  display:block;
  padding:0;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--muted) 18%,var(--border));
}
.music-connection-main{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:16px;
}
.music-connection-main .spotify-connection-brand{min-width:0;flex:1 1 auto}
.music-connection-identity{min-width:0;display:grid;gap:4px}
.music-connection-title-line{min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.music-connection-title-line>.spotify-provider-label{min-width:0;overflow-wrap:anywhere}
.spotify-provider-home{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:0;
  max-width:100%;
}
.spotify-provider-home strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.music-provider-external{display:inline-grid;place-items:center;flex:0 0 auto;color:var(--muted)}
.music-provider-external .app-icon{width:15px;height:15px}
.music-connection-state-badge{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  max-width:100%;
  padding:2px 8px;
  border:1px solid color-mix(in srgb,var(--muted) 24%,transparent);
  border-radius:999px;
  background:color-mix(in srgb,var(--muted) 10%,transparent);
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  line-height:16px;
  white-space:nowrap;
}
.music-connection-state-badge[data-tone="success"]{border-color:color-mix(in srgb,#23a55a 35%,transparent);background:color-mix(in srgb,#23a55a 12%,transparent);color:#35c56f}
.music-connection-state-badge[data-tone="warning"]{border-color:color-mix(in srgb,#f0b232 38%,transparent);background:color-mix(in srgb,#f0b232 12%,transparent);color:#f0b232}
.music-connection-state-badge[data-tone="danger"]{border-color:color-mix(in srgb,var(--danger) 38%,transparent);background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger)}
.music-connection-state-badge[data-tone="muted"]{color:var(--muted)}
.spotify-connection-status{display:block;min-width:0;color:var(--muted);line-height:1.45;overflow-wrap:anywhere}
.music-connection-preferences{
  border-top:1px solid color-mix(in srgb,var(--muted) 14%,var(--border));
  padding:12px 16px;
  background:color-mix(in srgb,var(--panel) 45%,transparent);
}
.music-connection-preferences .spotify-status-visibility{width:100%;margin:0!important;padding:0!important}
.music-connection-card[data-connection-state="connected"]{border-color:color-mix(in srgb,#23a55a 27%,var(--border))}
.music-connection-card[data-connection-state="attention"]{border-color:color-mix(in srgb,#f0b232 28%,var(--border))}
.music-connection-card[data-connection-state="unavailable"]{border-color:color-mix(in srgb,var(--danger) 28%,var(--border))}

/* v1.7.2.20 — SonicShelf timeline anchoring, semantic SSE correction, and rich-presence synchronization reliability. */
.spotify-like-profile-activity{
  grid-template-columns:64px minmax(0,1fr);
  grid-template-rows:auto auto auto;
  align-items:start;
  gap:10px 12px;
  padding:12px;
}
.spotify-like-profile-activity>.spotify-like-profile-copy{display:flex;flex-direction:column;min-width:0;gap:2px}
.spotify-like-profile-heading{text-transform:uppercase;letter-spacing:.02em;font-size:11px!important;font-weight:800}
.spotify-like-activity-timeline{grid-column:1/-1;display:block!important;min-width:0;margin-top:1px;gap:0!important}
.spotify-like-activity-progress-track{position:relative;width:100%;height:4px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--muted) 32%,transparent)}
.spotify-like-activity-progress-fill{position:absolute;inset:0;display:block;transform:scaleX(0);transform-origin:left center;border-radius:inherit;background:#1ed760;will-change:transform}
.spotify-like-activity-time-row{display:flex!important;flex-direction:row!important;justify-content:space-between;align-items:center;gap:10px!important;margin-top:4px;color:var(--muted);font-size:11px;line-height:14px;font-variant-numeric:tabular-nums}
.spotify-like-activity-time-row span{font-size:inherit!important;line-height:inherit!important;color:inherit!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important}
.spotify-like-profile-activity>.spotify-like-profile-actions{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:8px;margin:0;min-width:0}
.spotify-like-profile-activity>.spotify-like-profile-actions.has-listen-along{grid-template-columns:minmax(0,1fr) 40px}
.spotify-like-play-button,.spotify-like-open-button{min-width:0;min-height:38px;border:0;border-radius:5px;background:var(--button-secondary,var(--hover,#4e5058));color:var(--text,#fff);font:600 13px/1.2 inherit;text-decoration:none!important;display:flex;align-items:center;justify-content:center;gap:7px;padding:0 12px;cursor:pointer;transition:background-color .12s ease,filter .12s ease,opacity .12s ease}
.spotify-like-play-button:hover,.spotify-like-play-button:focus-visible,.spotify-like-open-button:hover,.spotify-like-open-button:focus-visible{background:color-mix(in srgb,var(--button-secondary,var(--hover,#4e5058)) 86%,white 14%);outline:none;text-decoration:none!important}
.spotify-like-play-button:disabled{opacity:.58;cursor:wait}
.spotify-like-play-button .spotify-note{font-size:14px;line-height:1;margin:0}
.spotify-like-listen-along-button.spotify-like-listen-along-compact{width:40px;min-width:40px;height:38px;min-height:38px;padding:0;display:grid;place-items:center;background:var(--button-secondary,var(--hover,#4e5058));color:var(--text,#fff);outline:0}
.spotify-like-listen-along-button.spotify-like-listen-along-compact .app-icon{width:18px;height:18px}
.spotify-like-listen-along-button.spotify-like-listen-along-compact:hover,.spotify-like-listen-along-button.spotify-like-listen-along-compact:focus-visible{background:color-mix(in srgb,var(--button-secondary,var(--hover,#4e5058)) 86%,white 14%);outline:none}
.spotify-like-listen-along-button.spotify-like-listen-along-compact.active{background:rgba(30,215,96,.18);color:#1ed760;box-shadow:inset 0 0 0 1px rgba(30,215,96,.46)}
@media(max-width:720px){
  .spotify-like-profile-activity>.spotify-like-profile-actions.has-listen-along{grid-template-columns:minmax(0,1fr) 44px}
  .spotify-like-play-button,.spotify-like-open-button,.spotify-like-listen-along-button.spotify-like-listen-along-compact{min-height:44px}
  .spotify-like-listen-along-button.spotify-like-listen-along-compact{width:44px;min-width:44px;height:44px}
}
@media(prefers-reduced-motion:reduce){.spotify-like-play-button,.spotify-like-open-button{transition:none}}

/* VAPID public key is intentionally browser-visible; keep it easy to copy without exposing private material. */
.admin-web-push-public-row{display:flex;align-items:center;gap:8px;min-width:0}
.admin-web-push-public-row .field{flex:1 1 auto;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}
.admin-web-push-copy-public{flex:0 0 auto;white-space:nowrap}
@media (max-width:560px){.admin-web-push-public-row{align-items:stretch;flex-direction:column}.admin-web-push-copy-public{width:100%;justify-content:center}}

/* PWA notification deep-link focus: local DOM emphasis only; no HTML reload. */
.message.message-notification-target,.notification-navigation-target{animation:app-notification-target-pulse 1.15s ease-out 0s 2;box-shadow:inset 3px 0 0 var(--accent);outline:0 solid transparent}
@keyframes app-notification-target-pulse{0%,100%{outline:0 solid transparent;outline-offset:0}35%{outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:-3px}}

/* Minecraft Lite — command-driven persistent sandbox */
.dm-game-card.minecraft-lite-card{position:relative;overflow:hidden}.minecraft-cube{display:inline-grid;place-items:center;font-weight:900;transform:rotate(0deg)}
.minecraft-lite-card .minecraft-cube{background:linear-gradient(145deg,#6f9d50,#3f6634);color:#e9f2df;border-radius:9px;box-shadow:inset -5px -5px 0 rgba(0,0,0,.13)}
.main.dm-game-open.minecraft-lite-open{grid-template-columns:minmax(240px,1fr) clamp(340px,52%,680px)}.minecraft-lite-active .dm-game-panel-scroll{padding:0;overflow-x:hidden;container-type:inline-size;container-name:minecraft-lite-panel}.minecraft-panel-head>div:first-child>span{color:#86b95e}.minecraft-launcher{padding:18px;display:grid;gap:16px}.minecraft-intro{margin:0}.minecraft-intro .minecraft-cube{font-size:30px}
.minecraft-mode-card{border:1px solid var(--border,#35373c);border-radius:12px;padding:14px;background:color-mix(in srgb,var(--bg-secondary,#2b2d31) 86%,transparent);display:grid;gap:12px}.minecraft-mode-card>header>div{display:grid;gap:3px}.minecraft-mode-card>header b{font-size:15px}.minecraft-mode-card>header small,.minecraft-empty-note{color:var(--text-muted,#949ba4)}
.minecraft-create-grid{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(140px,.8fr) minmax(150px,1fr);gap:10px}.minecraft-create-grid label{display:grid;gap:5px;color:var(--text-muted,#b5bac1);font-size:12px;font-weight:700;text-transform:uppercase}.minecraft-invite-list{max-height:190px;overflow:auto}
.minecraft-world-list{display:grid;gap:7px}.minecraft-world-list article,.minecraft-existing{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--border,#3f4147);border-radius:9px;background:var(--bg-tertiary,#1e1f22)}.minecraft-world-list article>div:first-child,.minecraft-existing{min-width:0}.minecraft-world-list strong,.minecraft-existing strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.minecraft-world-list small,.minecraft-existing span{display:block;color:var(--text-muted,#949ba4);font-size:11px}.minecraft-world-list article>div:last-child{display:flex;gap:6px;flex:none}
.minecraft-lobby,.minecraft-game{padding:14px;display:grid;gap:12px}.minecraft-world-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border:1px solid var(--border,#3f4147);border-radius:11px;background:var(--bg-secondary,#2b2d31)}.minecraft-world-title>div{display:flex;align-items:center;gap:10px;min-width:0}.minecraft-world-title .minecraft-cube{font-size:26px;color:#78a85b}.minecraft-world-title strong,.minecraft-world-title small{display:block}.minecraft-world-title small{color:var(--text-muted,#949ba4);font-size:11px}.minecraft-world-title>span{padding:4px 8px;border-radius:999px;background:var(--bg-tertiary,#1e1f22);font-size:11px;color:var(--text-muted,#b5bac1);white-space:nowrap}
.minecraft-player-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px}.minecraft-player-grid article{display:flex;align-items:center;gap:8px;border:1px solid var(--border,#3f4147);border-radius:9px;padding:8px;background:var(--bg-tertiary,#1e1f22)}.minecraft-player-grid article.ready{border-color:color-mix(in srgb,#55a85b 55%,var(--border,#3f4147))}.minecraft-player-grid .avatar{width:30px;height:30px;border-radius:50%;overflow:hidden;flex:none}.minecraft-player-grid .avatar img{width:100%;height:100%;object-fit:cover}.minecraft-player-grid strong,.minecraft-player-grid small{display:block}.minecraft-player-grid small{font-size:10px;color:var(--text-muted,#949ba4);text-transform:capitalize}
.minecraft-dashboard{display:grid;grid-template-columns:minmax(280px,1.35fr) minmax(200px,.75fr);gap:11px;min-width:0}.minecraft-map-panel,.minecraft-hud,.minecraft-workbench>section,.minecraft-details{min-width:0;border:1px solid var(--border,#3f4147);border-radius:11px;background:var(--bg-secondary,#2b2d31)}.minecraft-map-panel{padding:10px;display:grid;gap:8px}.minecraft-map-panel>header{display:flex;align-items:end;justify-content:space-between;gap:8px}.minecraft-map-panel>header small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted,#949ba4);text-transform:capitalize}
.minecraft-map{width:min(100%,520px);aspect-ratio:1;margin:auto;display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);gap:2px;background:#11151a;padding:3px;border-radius:8px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}.minecraft-map>span{display:grid;place-items:center;min-width:0;border-radius:2px;font-size:clamp(8px,1.5vw,13px);color:white;text-shadow:0 1px 2px #000;position:relative}.minecraft-map .biome-unknown{background:#16191d}.minecraft-map .biome-plains{background:#719c53}.minecraft-map .biome-forest,.minecraft-map .biome-birch_forest{background:#396d3c}.minecraft-map .biome-taiga{background:#406656}.minecraft-map .biome-jungle{background:#2c7036}.minecraft-map .biome-desert,.minecraft-map .biome-beach{background:#c7ad62}.minecraft-map .biome-savanna{background:#8f9a49}.minecraft-map .biome-swamp{background:#4d6746}.minecraft-map .biome-mountains,.minecraft-map .biome-badlands{background:#76675b}.minecraft-map .biome-snow_plains{background:#c5d7d7}.minecraft-map .biome-mushroom{background:#82557b}.minecraft-map>span.is-player{outline:2px solid white;z-index:2}.minecraft-map>span.has-danger{background:#7e3939}.minecraft-map>span.has-farm{box-shadow:inset 0 0 0 2px rgba(168,214,102,.75)}.minecraft-map-legend{display:flex;flex-wrap:wrap;gap:8px;color:var(--text-muted,#949ba4);font-size:10px}
.minecraft-hud{padding:11px;display:grid;gap:8px}.minecraft-hud>header{display:flex;align-items:center;gap:9px}.minecraft-hud>header .avatar{width:36px;height:36px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--bg-tertiary,#1e1f22)}.minecraft-hud>header .avatar img{width:100%;height:100%;object-fit:cover}.minecraft-hud>header strong,.minecraft-hud>header small{display:block}.minecraft-hud>header small{color:var(--text-muted,#949ba4);font-size:10px}.minecraft-meter{display:grid;gap:3px}.minecraft-meter>span{display:flex;justify-content:space-between;font-size:10px}.minecraft-meter em{font-style:normal;color:var(--text-muted,#949ba4)}.minecraft-meter>i,.minecraft-production i{display:block;height:6px;background:var(--bg-tertiary,#1e1f22);border-radius:99px;overflow:hidden}.minecraft-meter u,.minecraft-production u{display:block;height:100%;background:#7a9e55;text-decoration:none;border-radius:inherit}.minecraft-meter.health u{background:#d65d65}.minecraft-meter.hunger u{background:#c89650}.minecraft-meter.stamina u{background:#5c9acb}.minecraft-hud dl{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:2px 0}.minecraft-hud dl div{padding:6px;background:var(--bg-tertiary,#1e1f22);border-radius:6px}.minecraft-hud dt{font-size:9px;text-transform:uppercase;color:var(--text-muted,#949ba4)}.minecraft-hud dd{margin:2px 0 0;font-size:11px;overflow:hidden;text-overflow:ellipsis}.minecraft-section-label{font-size:10px;text-transform:uppercase;color:var(--text-muted,#949ba4)}.minecraft-production{display:grid;gap:6px}.minecraft-production>div{display:grid;gap:3px}.minecraft-production>div>span{display:flex;justify-content:space-between;gap:5px;font-size:9px}.minecraft-production em{font-style:normal;color:var(--text-muted,#949ba4)}
.minecraft-workbench{display:grid;grid-template-columns:minmax(190px,.65fr) minmax(300px,1.35fr);gap:11px;min-width:0}.minecraft-workbench>section{padding:10px;min-width:0}.minecraft-workbench>section>header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.minecraft-workbench>section>header small{display:block;color:var(--text-muted,#949ba4);font-size:10px}.minecraft-inventory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:5px;max-height:257px;overflow:auto}.minecraft-inventory-grid button{position:relative;min-height:61px;padding:7px 4px;border:1px solid var(--border,#3f4147);border-radius:7px;background:var(--bg-tertiary,#1e1f22);color:var(--text-normal,#dbdee1);display:grid;place-items:center;gap:2px;cursor:pointer}.minecraft-inventory-grid button:hover{border-color:var(--interactive-hover,#6d6f78)}.minecraft-inventory-grid button>span{font-size:18px}.minecraft-inventory-grid button>b{font-size:9px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:capitalize}.minecraft-inventory-grid button>em{position:absolute;right:4px;bottom:2px;font-size:9px;font-style:normal;color:var(--text-muted,#b5bac1)}
.minecraft-console-wrap{display:grid!important;grid-template-rows:auto minmax(180px,1fr) auto auto;min-height:330px}.minecraft-console{height:245px;overflow:auto;padding:9px;background:#12151a;border:1px solid rgba(255,255,255,.06);border-radius:7px;font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#d7e0d1}.minecraft-console>div{display:grid;grid-template-columns:42px 1fr;gap:5px;padding:2px 0}.minecraft-console time{color:#667169}.minecraft-console .type-command span{color:#9ebc83}.minecraft-console .type-error span{color:#e17c83}.minecraft-console .type-resource span,.minecraft-console .type-craft span{color:#d9c17d}.minecraft-console .type-combat span{color:#e39b7c}.minecraft-console .type-world span{color:#83aed1}.minecraft-quick{display:flex;gap:4px;overflow:auto;padding:7px 0 4px}.minecraft-quick button{border:1px solid var(--border,#3f4147);background:var(--bg-tertiary,#1e1f22);color:var(--text-muted,#b5bac1);border-radius:999px;padding:4px 7px;font:9px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:nowrap;cursor:pointer}.minecraft-console-wrap form{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px}.minecraft-console-wrap form>span{font:700 15px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#7da45f}.minecraft-console-wrap form input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.minecraft-details{padding:0 10px 10px}.minecraft-details summary{padding:10px 0;cursor:pointer;color:var(--text-muted,#b5bac1);font-weight:700}.minecraft-details .minecraft-player-grid{padding-top:2px}
.minecraft-lite-active:fullscreen,.minecraft-lite-active.game-surface-popout{background:var(--bg-primary,#313338)}.minecraft-lite-active:fullscreen .minecraft-map{max-width:650px}.minecraft-lite-active:fullscreen .minecraft-console{height:32vh}
@media(max-width:1000px){.main.dm-game-open.minecraft-lite-open{grid-template-columns:minmax(220px,1fr) minmax(340px,52%)}.minecraft-create-grid{grid-template-columns:1fr 1fr}.minecraft-create-grid label:last-child{grid-column:1/-1}.minecraft-dashboard,.minecraft-workbench{grid-template-columns:1fr}.minecraft-map{max-width:460px}.minecraft-console{height:220px}}
@media(max-width:680px){.minecraft-launcher,.minecraft-lobby,.minecraft-game{padding:9px}.minecraft-mode-card{padding:10px}.minecraft-create-grid{grid-template-columns:1fr}.minecraft-create-grid label:last-child{grid-column:auto}.minecraft-world-title{align-items:flex-start}.minecraft-dashboard{display:block}.minecraft-hud{margin-top:8px}.minecraft-workbench{display:block}.minecraft-workbench>section+section{margin-top:8px}.minecraft-map{width:100%}.minecraft-inventory-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-height:205px}.minecraft-console-wrap{min-height:300px}.minecraft-console{height:190px}.minecraft-hud dl{grid-template-columns:repeat(2,1fr)}.minecraft-world-list article{align-items:flex-start}.minecraft-world-list article>div:last-child{flex-wrap:wrap;justify-content:flex-end}.minecraft-player-grid{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.minecraft-player-grid{grid-template-columns:1fr}.minecraft-inventory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.minecraft-console>div{grid-template-columns:34px 1fr}.minecraft-world-title>span{display:none}}
@container minecraft-lite-panel (max-width:560px){.minecraft-game,.minecraft-lobby{padding:10px;gap:9px}.minecraft-dashboard,.minecraft-workbench{grid-template-columns:minmax(0,1fr)}.minecraft-map{width:min(100%,420px);max-width:420px}.minecraft-hud{margin-top:0}.minecraft-console-wrap{min-height:290px}.minecraft-console{height:200px}.minecraft-create-grid{grid-template-columns:1fr 1fr}.minecraft-create-grid label:last-child{grid-column:1/-1}}
@container minecraft-lite-panel (max-width:420px){.minecraft-launcher,.minecraft-game,.minecraft-lobby{padding:8px}.minecraft-mode-card{padding:10px}.minecraft-create-grid{grid-template-columns:minmax(0,1fr)}.minecraft-create-grid label:last-child{grid-column:auto}.minecraft-world-title{align-items:flex-start}.minecraft-world-title>span{display:none}.minecraft-inventory-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:205px}.minecraft-console-wrap{min-height:270px}.minecraft-console{height:175px}.minecraft-hud dl{grid-template-columns:repeat(2,minmax(0,1fr))}.minecraft-world-list article{align-items:flex-start}.minecraft-world-list article>div:last-child{flex-wrap:wrap;justify-content:flex-end}.minecraft-player-grid{grid-template-columns:minmax(0,1fr)}}


/* Minecraft Lite fullscreen — viewport-fitted workspace.
 * Fullscreen is intentionally non-scrolling at the page/panel level. The map,
 * HUD, inventory and console each own their bounded area and only content-heavy
 * panes scroll internally. This keeps command entry and critical status visible
 * at every moment while scaling down cleanly on shorter displays. */
.dm-game-panel.minecraft-lite-active:fullscreen,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen{
 width:100vw!important;
 height:100dvh!important;
 max-width:none!important;
 max-height:100dvh!important;
 overflow:hidden!important;
 contain:layout paint;
}
.dm-game-panel.minecraft-lite-active:fullscreen .dm-game-panel-head,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .dm-game-panel-head,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .dm-game-panel-head{
 height:46px;
 min-height:46px;
 padding-inline:10px 8px;
}
.dm-game-panel.minecraft-lite-active:fullscreen .dm-game-panel-scroll,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .dm-game-panel-scroll,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .dm-game-panel-scroll{
 flex:1 1 auto;
 min-height:0;
 height:auto;
 overflow:hidden!important;
 padding:0!important;
 overscroll-behavior:none;
}
.dm-game-panel.minecraft-lite-active:fullscreen .dm-game-panel-scroll>.minecraft-game,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .dm-game-panel-scroll>.minecraft-game,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .dm-game-panel-scroll>.minecraft-game{
 width:100%!important;
 max-width:1440px!important;
 height:100%;
 min-height:0;
 margin:0 auto!important;
 padding:8px 12px;
 gap:7px;
 display:grid;
 grid-template-rows:auto minmax(0,1.06fr) minmax(0,.94fr) auto auto;
 overflow:hidden;
}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-world-title,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-world-title,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-world-title{
 min-height:0;
 padding:7px 10px;
 border-radius:8px;
}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-world-title .minecraft-cube,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-world-title .minecraft-cube,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-world-title .minecraft-cube{font-size:21px}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-dashboard,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-dashboard,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-dashboard{
 height:100%;
 min-height:0;
 grid-template-columns:minmax(260px,1.42fr) minmax(190px,.58fr)!important;
 gap:7px;
}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-map-panel,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-map-panel,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-map-panel{
 height:100%;
 min-height:0;
 padding:7px;
 gap:5px;
 display:grid;
 grid-template-rows:auto minmax(0,1fr) auto;
 overflow:hidden;
}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-map,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-map,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-map{
 width:auto!important;
 height:100%!important;
 max-width:100%!important;
 max-height:100%!important;
 min-width:0;
 min-height:0;
 aspect-ratio:1/1;
 justify-self:center;
 align-self:center;
 margin:auto;
}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-map-legend,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-map-legend,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-map-legend{gap:6px;font-size:9px}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-hud,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-hud,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-hud{
 height:100%;
 min-height:0;
 padding:7px;
 gap:5px;
 overflow:auto;
 overscroll-behavior:contain;
 scrollbar-width:thin;
}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-hud>header .avatar,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-hud>header .avatar,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-hud>header .avatar{width:30px;height:30px}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-hud dl,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-hud dl,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-hud dl{gap:4px}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-hud dl div,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-hud dl div,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-hud dl div{padding:4px}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-workbench,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-workbench,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-workbench{
 height:100%;
 min-height:0;
 grid-template-columns:minmax(170px,.58fr) minmax(300px,1.42fr)!important;
 gap:7px;
}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-workbench>section,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-workbench>section,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-workbench>section{
 min-height:0;
 height:100%;
 padding:7px;
 overflow:hidden;
}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-workbench>section:first-child,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-workbench>section:first-child,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-workbench>section:first-child{
 display:grid;
 grid-template-rows:auto minmax(0,1fr);
}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-workbench>section>header,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-workbench>section>header,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-workbench>section>header{margin-bottom:5px}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-inventory-grid,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-inventory-grid,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-inventory-grid{
 min-height:0;
 height:100%;
 max-height:none;
 overflow:auto;
 align-content:start;
 grid-template-columns:repeat(auto-fill,minmax(60px,1fr));
 gap:4px;
 overscroll-behavior:contain;
 scrollbar-width:thin;
}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-inventory-grid button,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-inventory-grid button,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-inventory-grid button{min-height:48px;padding:4px 3px}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-inventory-grid button>span,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-inventory-grid button>span,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-inventory-grid button>span{font-size:15px}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-console-wrap,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-console-wrap,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-console-wrap{
 min-height:0;
 height:100%;
 grid-template-rows:auto minmax(0,1fr) auto auto;
}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-console,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-console,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-console{
 height:auto!important;
 min-height:0;
 padding:6px 7px;
 overflow:auto;
 overscroll-behavior:contain;
 scrollbar-width:thin;
 font-size:10px;
 line-height:1.35;
}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-quick,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-quick,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-quick{padding:4px 0 2px}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-details,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-details,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-details{
 min-height:0;
 padding:0 8px;
 overflow:auto;
 scrollbar-width:thin;
}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-details summary,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-details summary,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-details summary{padding:5px 0;font-size:11px}
.dm-game-panel.minecraft-lite-active:fullscreen .game-session-controls,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .game-session-controls,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .game-session-controls{
 min-height:30px;
 margin:0;
 gap:6px;
 align-items:center;
}
.dm-game-panel.minecraft-lite-active:fullscreen .game-session-controls button,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .game-session-controls button,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .game-session-controls button{min-height:28px;padding-block:4px}

/* Short desktop/laptop displays: reduce chrome before sacrificing workspace. */
@media (max-height:820px){
 .dm-game-panel.minecraft-lite-active:fullscreen .dm-game-panel-head,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .dm-game-panel-head,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .dm-game-panel-head{height:42px;min-height:42px}
 .dm-game-panel.minecraft-lite-active:fullscreen .dm-game-panel-scroll>.minecraft-game,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .dm-game-panel-scroll>.minecraft-game,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .dm-game-panel-scroll>.minecraft-game{padding:5px 8px;gap:5px;grid-template-rows:auto minmax(0,1.02fr) minmax(0,.98fr) auto auto}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-world-title,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-world-title,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-world-title{padding:5px 8px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-map-panel,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-map-panel,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-map-panel,
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-hud,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-hud,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-hud,
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-workbench>section,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-workbench>section,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-workbench>section{padding:5px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-map-legend,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-map-legend,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-map-legend{font-size:8px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-hud,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-hud,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-hud{gap:4px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-meter,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-meter,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-meter{gap:2px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-inventory-grid button,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-inventory-grid button,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-inventory-grid button{min-height:42px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-details summary,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-details summary,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-details summary{padding:3px 0}
}

/* Very short fullscreen surfaces keep the core game always visible. Production,
 * inventory and console remain reachable through their own internal scroll. */
@media (max-height:680px){
 .dm-game-panel.minecraft-lite-active:fullscreen .dm-game-panel-head,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .dm-game-panel-head,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .dm-game-panel-head{height:38px;min-height:38px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-panel-head small,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-panel-head small,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-panel-head small{display:none}
 .dm-game-panel.minecraft-lite-active:fullscreen .dm-game-panel-scroll>.minecraft-game,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .dm-game-panel-scroll>.minecraft-game,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .dm-game-panel-scroll>.minecraft-game{padding:4px 6px;gap:4px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-world-title .minecraft-cube,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-world-title .minecraft-cube,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-world-title .minecraft-cube{font-size:17px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-world-title small,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-world-title small,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-world-title small{font-size:9px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-map-panel>header,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-map-panel>header,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-map-panel>header{font-size:10px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-map-legend,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-map-legend,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-map-legend{display:none}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-hud>header .avatar,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-hud>header .avatar,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-hud>header .avatar{width:24px;height:24px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-hud dt,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-hud dt,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-hud dt{font-size:8px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-hud dd,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-hud dd,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-hud dd{font-size:9px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-meter>span,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-meter>span,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-meter>span{font-size:9px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-meter>i,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-meter>i,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-meter>i{height:4px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-inventory-grid button,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-inventory-grid button,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-inventory-grid button{min-height:35px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-inventory-grid button>span,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-inventory-grid button>span,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-inventory-grid button>span{font-size:12px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-inventory-grid button>b,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-inventory-grid button>b,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-inventory-grid button>b{font-size:8px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-console,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-console,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-console{font-size:9px;padding:4px 5px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-console-wrap header small,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-console-wrap header small,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-console-wrap header small{display:none}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-details,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-details,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-details{display:none}
 .dm-game-panel.minecraft-lite-active:fullscreen .game-session-controls,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .game-session-controls,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .game-session-controls{min-height:24px}
 .dm-game-panel.minecraft-lite-active:fullscreen .game-session-controls button,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .game-session-controls button,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .game-session-controls button{min-height:24px;padding:2px 7px;font-size:10px}
}

/* Portrait fullscreen: keep the map/HUD side by side and devote the lower area
 * to the command console. Inventory becomes a compact internally scrolling band. */
@media (max-width:560px){
 .dm-game-panel.minecraft-lite-active:fullscreen .dm-game-panel-scroll>.minecraft-game,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .dm-game-panel-scroll>.minecraft-game,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .dm-game-panel-scroll>.minecraft-game{padding-inline:5px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-dashboard,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-dashboard,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-dashboard{grid-template-columns:minmax(155px,1.18fr) minmax(118px,.82fr)!important;gap:5px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-workbench,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-workbench,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-workbench{grid-template-columns:minmax(104px,.42fr) minmax(0,1.58fr)!important;gap:5px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-inventory-grid,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-inventory-grid,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-hud dl,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-hud dl,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-hud dl{grid-template-columns:1fr}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-hud dl div,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-hud dl div,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-hud dl div{display:flex;align-items:center;justify-content:space-between;gap:4px}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-hud dd,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-hud dd,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-hud dd{margin:0}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-console>div,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-console>div,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-console>div{grid-template-columns:30px 1fr}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-quick,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-quick,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-quick{display:none}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-console-wrap form,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-console-wrap form,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-console-wrap form{grid-template-columns:auto minmax(0,1fr) auto;gap:4px}
}

@media (max-width:380px){
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-dashboard,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-dashboard,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-dashboard{grid-template-columns:minmax(135px,1.12fr) minmax(105px,.88fr)!important}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-workbench,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-workbench,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-workbench{grid-template-columns:88px minmax(0,1fr)!important}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-inventory-grid,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-inventory-grid,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-inventory-grid{grid-template-columns:minmax(0,1fr)}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-hud>header .avatar,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-hud>header .avatar,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-hud>header .avatar{display:none}
 .dm-game-panel.minecraft-lite-active:fullscreen .minecraft-section-label,
 .dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-section-label,
 .dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-section-label{font-size:8px}
}
.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-details,
.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-details,
.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-details{max-height:min(84px,12dvh)}

/* Minecraft Lite UX / onboarding / interaction polish */
.minecraft-start-tip{margin-top:10px;padding:9px 11px;border-radius:9px;border:1px solid color-mix(in srgb,#79a85a 38%,var(--border,#3f4147));background:color-mix(in srgb,#62854b 13%,var(--bg-tertiary,#1e1f22));display:flex;align-items:flex-start;gap:7px;text-align:left}.minecraft-start-tip b{color:#9bc27e;white-space:nowrap}.minecraft-start-tip span{color:var(--text-muted,#b5bac1);font-size:11px;line-height:1.4}
.minecraft-avatar{display:grid!important;place-items:center;overflow:hidden;background:var(--bg-tertiary,#1e1f22);color:var(--text-muted,#b5bac1);font-weight:800;isolation:isolate}.minecraft-avatar img{width:100%!important;height:100%!important;object-fit:cover!important;display:block}.minecraft-avatar .avatar-fallback-initial{display:grid;place-items:center;width:100%;height:100%;font-size:11px;line-height:1}.minecraft-avatar.hud .avatar-fallback-initial{font-size:13px}
.minecraft-map-panel>header>div{min-width:0;display:grid;gap:2px}.minecraft-map-panel>header>div small{font-size:9px;color:var(--text-muted,#949ba4);font-weight:500}.minecraft-map-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;min-width:0}.minecraft-map-footer-meta{display:grid;gap:6px;min-width:0}.minecraft-nearby-resources{display:flex;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:thin;padding-bottom:1px}.minecraft-nearby-resources button{flex:0 0 auto;display:flex;align-items:center;gap:4px;min-height:27px;padding:3px 6px;border:1px solid var(--border,#3f4147);border-radius:7px;background:var(--bg-tertiary,#1e1f22);color:var(--text-normal,#dbdee1);cursor:pointer}.minecraft-nearby-resources button:hover{border-color:color-mix(in srgb,var(--accent,#5865f2) 55%,var(--border,#3f4147));background:color-mix(in srgb,var(--accent,#5865f2) 9%,var(--bg-tertiary,#1e1f22))}.minecraft-nearby-resources span{font-size:11px}.minecraft-nearby-resources b{font-size:9px}.minecraft-nearby-resources em{font-size:9px;font-style:normal;color:var(--text-muted,#949ba4)}
.minecraft-move-pad{width:92px;display:grid;grid-template-columns:repeat(3,28px);grid-template-rows:repeat(3,28px);gap:2px;place-content:center}.minecraft-move-pad button{border:1px solid var(--border,#3f4147);border-radius:6px;background:var(--bg-tertiary,#1e1f22);color:var(--text-normal,#dbdee1);font-weight:900;cursor:pointer;padding:0}.minecraft-move-pad button:hover{background:color-mix(in srgb,var(--accent,#5865f2) 14%,var(--bg-tertiary,#1e1f22));border-color:var(--interactive-hover,#6d6f78)}.minecraft-move-pad button:nth-child(1){grid-column:2;grid-row:1}.minecraft-move-pad button:nth-child(2){grid-column:1;grid-row:2}.minecraft-move-pad button:nth-child(3){grid-column:2;grid-row:2;color:#8eb26f}.minecraft-move-pad button:nth-child(4){grid-column:3;grid-row:2}.minecraft-move-pad button:nth-child(5){grid-column:2;grid-row:3}
.minecraft-objective{padding:8px;border:1px solid color-mix(in srgb,#79a85a 38%,var(--border,#3f4147));border-radius:8px;background:color-mix(in srgb,#6d9851 10%,var(--bg-tertiary,#1e1f22));display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px}.minecraft-objective>div{display:grid;gap:2px;min-width:0}.minecraft-objective span{font-size:8px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#8eb26f}.minecraft-objective strong{font-size:11px;line-height:1.2}.minecraft-objective small{font-size:9px;line-height:1.25;color:var(--text-muted,#949ba4)}.minecraft-objective button{align-self:center;white-space:nowrap}
.minecraft-console-wrap{position:relative}.minecraft-console-tools{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.minecraft-guide-popover{position:absolute;z-index:12;left:8px;right:8px;top:42px;bottom:48px;min-height:0;padding:10px;border:1px solid color-mix(in srgb,var(--accent,#5865f2) 38%,var(--border,#3f4147));border-radius:10px;background:color-mix(in srgb,var(--bg-secondary,#2b2d31) 96%,black);box-shadow:0 14px 38px rgba(0,0,0,.4);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.minecraft-guide-popover[hidden]{display:none!important}.minecraft-guide-popover>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:1px solid var(--border,#3f4147)}.minecraft-guide-popover>header>div{display:grid;gap:3px}.minecraft-guide-popover>header small{font-size:10px;line-height:1.35;color:var(--text-muted,#949ba4)}.minecraft-guide-progress{margin:9px 0;padding:9px;border-radius:8px;background:color-mix(in srgb,#6e9854 11%,var(--bg-tertiary,#1e1f22));display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;align-items:center}.minecraft-guide-progress>span{grid-column:1;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#8eb26f;font-weight:800}.minecraft-guide-progress>strong{grid-column:1;font-size:12px}.minecraft-guide-progress>small{grid-column:1;color:var(--text-muted,#949ba4);font-size:10px;line-height:1.35}.minecraft-guide-progress>button{grid-column:2;grid-row:1/4}.minecraft-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.minecraft-guide-grid article{padding:8px;border:1px solid var(--border,#3f4147);border-radius:8px;background:var(--bg-tertiary,#1e1f22)}.minecraft-guide-grid article b{font-size:11px}.minecraft-guide-grid article p{margin:4px 0 7px;color:var(--text-muted,#949ba4);font-size:9px;line-height:1.35}.minecraft-guide-grid article>div{display:flex;flex-wrap:wrap;gap:4px}.minecraft-guide-grid article button{border:1px solid var(--border,#3f4147);border-radius:6px;background:var(--bg-secondary,#2b2d31);color:var(--text-normal,#dbdee1);padding:4px 6px;font-size:9px;cursor:pointer}.minecraft-guide-grid article button:hover{border-color:var(--interactive-hover,#6d6f78)}.minecraft-guide-popover>footer{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;padding-top:7px;border-top:1px solid var(--border,#3f4147);color:var(--text-muted,#949ba4);font:9px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.minecraft-command-suggestions{position:absolute;z-index:11;left:8px;right:8px;bottom:43px;max-height:190px;overflow:auto;padding:4px;border:1px solid var(--border,#3f4147);border-radius:8px;background:var(--bg-floating,var(--bg-secondary,#2b2d31));box-shadow:0 10px 28px rgba(0,0,0,.34);scrollbar-width:thin}.minecraft-command-suggestions[hidden]{display:none!important}.minecraft-command-suggestions button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px;border:0;border-radius:6px;background:transparent;color:var(--text-normal,#dbdee1);text-align:left;cursor:pointer}.minecraft-command-suggestions button:hover{background:var(--background-modifier-hover,rgba(255,255,255,.06))}.minecraft-command-suggestions button span{display:grid;gap:2px;min-width:0}.minecraft-command-suggestions button b{font-size:10px}.minecraft-command-suggestions button small{font-size:9px;color:var(--text-muted,#949ba4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.minecraft-command-suggestions code{font-size:9px;color:#9fbe84;white-space:nowrap}
.minecraft-quick{align-items:stretch}.minecraft-quick button{display:grid;gap:1px;text-align:left;line-height:1.1;padding:5px 8px}.minecraft-quick button b{font:700 9px/1.1 var(--font-primary,system-ui,sans-serif);color:var(--text-normal,#dbdee1)}.minecraft-quick button small{font:8px/1.1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--text-muted,#949ba4)}
.minecraft-console .type-help span,.minecraft-console .type-hint span{color:#b7ca9f}.minecraft-console .type-command span{font-weight:650}.minecraft-console .type-error span{font-weight:650}
.minecraft-workbench>section>header>div{display:grid;gap:2px;min-width:0}.minecraft-inventory-grid button:focus-visible,.minecraft-move-pad button:focus-visible,.minecraft-nearby-resources button:focus-visible,.minecraft-quick button:focus-visible,.minecraft-guide-popover button:focus-visible,.minecraft-command-suggestions button:focus-visible{outline:2px solid var(--accent,#5865f2);outline-offset:1px}

@container minecraft-lite-panel (max-width:520px){.minecraft-map-footer{grid-template-columns:1fr}.minecraft-move-pad{justify-self:center}.minecraft-objective{grid-template-columns:1fr}.minecraft-objective button{justify-self:start}.minecraft-console-tools{justify-content:flex-start}.minecraft-guide-grid{grid-template-columns:1fr}.minecraft-guide-progress{grid-template-columns:1fr}.minecraft-guide-progress>button{grid-column:1;grid-row:auto;justify-self:start}.minecraft-nearby-resources{max-width:100%}}
@container minecraft-lite-panel (max-width:380px){.minecraft-map-panel>header>div small{display:none}.minecraft-nearby-resources button b{display:none}.minecraft-objective small{display:none}.minecraft-guide-popover{left:4px;right:4px;top:38px;bottom:44px;padding:7px}.minecraft-command-suggestions{left:4px;right:4px}.minecraft-console-tools .secondary.compact:first-child{display:none}}

.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-objective,.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-objective,.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-objective{padding:5px 6px;gap:5px}.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-objective small,.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-objective small,.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-objective small{font-size:8px}.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-objective strong,.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-objective strong,.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-objective strong{font-size:10px}.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-objective button,.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-objective button,.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-objective button{padding:2px 6px;min-height:23px;font-size:9px}.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-map-footer,.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-map-footer,.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-map-footer{gap:5px}.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-move-pad,.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-move-pad,.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-move-pad{width:76px;grid-template-columns:repeat(3,23px);grid-template-rows:repeat(3,23px)}.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-nearby-resources button,.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-nearby-resources button,.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-nearby-resources button{min-height:22px;padding:2px 4px}.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-guide-popover,.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-guide-popover,.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-guide-popover{top:34px;bottom:36px}.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-command-suggestions,.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-command-suggestions,.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-command-suggestions{bottom:35px}
@media (max-height:700px){.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-objective small,.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-objective small,.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-objective small{display:none}.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-nearby-resources,.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-nearby-resources,.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-nearby-resources{display:none}.dm-game-panel.minecraft-lite-active:fullscreen .minecraft-move-pad,.dm-game-panel.minecraft-lite-active:-webkit-full-screen .minecraft-move-pad,.dm-game-panel.minecraft-lite-active.game-surface-fullscreen .minecraft-move-pad{width:64px;grid-template-columns:repeat(3,19px);grid-template-rows:repeat(3,19px)}}

/* v1.7.2.68 Games — stable adaptive activity dock.
 * The conversation and activity are two persistent regions. ResizeObserver
 * classes come from the real workspace width, so sidebars/member lists are
 * accounted for instead of guessing from the browser viewport. */
@media (min-width:701px){
 .main.dm-game-open{
  grid-template-columns:minmax(320px,1fr) minmax(400px,48%);
  grid-template-rows:minmax(0,1fr) auto;
  column-gap:0;
  min-width:0;
 }
 .main.dm-game-open.game-layout-wide{
  grid-template-columns:minmax(360px,1fr) clamp(460px,42vw,720px);
 }
 .main.dm-game-open.game-layout-medium{
  grid-template-columns:minmax(300px,1fr) minmax(420px,50%);
 }
 .main.dm-game-open.minecraft-lite-open.game-layout-wide{
  grid-template-columns:minmax(340px,1fr) clamp(520px,48vw,780px);
 }
 .main.dm-game-open.minecraft-lite-open.game-layout-medium{
  grid-template-columns:minmax(300px,1fr) minmax(460px,54%);
 }
 .main.dm-game-open.estate-game-open.game-layout-wide{
  grid-template-columns:minmax(340px,1fr) clamp(560px,50vw,820px);
 }
 .main.dm-game-open.estate-game-open.game-layout-medium{
  grid-template-columns:minmax(300px,1fr) minmax(480px,56%);
 }
 .main.dm-game-open>.dm-game-panel{
  position:relative;
  z-index:2;
  align-self:stretch;
  width:100%;
  max-width:none;
  contain:layout paint;
  isolation:isolate;
 }
 .main.dm-game-open.game-layout-compact{
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:minmax(280px,56%) minmax(0,1fr) auto!important;
 }
 .main.dm-game-open.game-layout-compact>.dm-game-panel{
  position:relative;
  width:100%;
  max-width:none;
 }
}

/* The activity surface owns its scrolling. This keeps the conversation's
 * scroll/composer stable when an SSE patch updates only game state. */
.dm-game-panel{
 overscroll-behavior:contain;
 transform:translateZ(0);
}
.dm-game-panel>.dm-game-panel-head{flex:0 0 auto}
.dm-game-panel>.dm-game-panel-scroll{flex:1 1 auto;min-height:0}

/* v1.7.2.71 — Discord-style notification mutes without redundant DM scope. */
.modal-profile .profile-header-actions{gap:8px;flex-wrap:wrap}
.modal-profile .profile-header-action[data-mute-user]{background:var(--bg-secondary);color:var(--text);border:1px solid var(--border)}
.modal-profile .profile-header-action[data-mute-user]:hover{background:var(--hover);filter:none}
.modal-profile .profile-header-action[data-mute-user][aria-pressed="true"]{background:color-mix(in srgb,var(--brand) 18%,var(--bg-secondary));border-color:color-mix(in srgb,var(--brand) 42%,var(--border));color:var(--strong)}
.category-row.muted-conversation,.category-row.muted-inherited{opacity:.58}

/* 1.7.2.73 — City Estates clarity / guided-play UX. */
.estate-create-intro{display:grid;justify-items:center;gap:8px}
.estate-start-steps,.estate-lobby-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;margin:4px 0 8px}
.estate-start-steps span,.estate-lobby-flow span{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;padding:8px;border:1px solid color-mix(in srgb,var(--muted) 18%,transparent);border-radius:9px;background:color-mix(in srgb,var(--bg) 64%,transparent);color:var(--muted);font-size:10px;font-weight:700;text-align:center}
.estate-start-steps b,.estate-lobby-flow b{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:50%;background:color-mix(in srgb,var(--muted) 20%,var(--panel));color:var(--strong);font-size:10px}
.estate-lobby-flow .done{border-color:color-mix(in srgb,#45b97c 35%,transparent);background:color-mix(in srgb,#45b97c 8%,var(--bg));color:var(--strong)}
.estate-lobby-flow .done b{background:#45b97c;color:#07190f}
.estate-lobby-flow .current{border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 10%,var(--bg));color:var(--strong);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 16%,transparent)}
.estate-overview{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,.75fr) minmax(0,1.5fr);gap:6px;margin:8px 0}
.estate-overview>div{min-width:0;padding:8px 10px;border-radius:9px;background:color-mix(in srgb,var(--bg) 66%,transparent);border:1px solid color-mix(in srgb,var(--muted) 16%,transparent)}
.estate-overview small,.estate-overview strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.estate-overview small{margin-bottom:2px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.045em}
.estate-overview strong{color:var(--strong);font-size:12px}
.estate-next-action{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;margin:8px 0 5px;padding:10px 11px;border:1px solid color-mix(in srgb,var(--accent) 42%,transparent);border-radius:11px;background:linear-gradient(125deg,color-mix(in srgb,var(--accent) 12%,var(--panel)),color-mix(in srgb,var(--bg) 72%,transparent));box-shadow:inset 3px 0 0 var(--accent)}
.estate-next-action>span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:color-mix(in srgb,var(--accent) 18%,var(--bg));font-size:19px}
.estate-next-action small,.estate-next-action strong,.estate-next-action p{display:block;margin:0;min-width:0}
.estate-next-action small{color:var(--accent);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.estate-next-action strong{margin-top:1px;color:var(--strong);font-size:13px}
.estate-next-action p{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.38}
.estate-next-action.waiting{border-color:color-mix(in srgb,var(--muted) 28%,transparent);box-shadow:inset 3px 0 0 color-mix(in srgb,var(--muted) 55%,transparent)}
.estate-next-action.waiting small{color:var(--muted)}
.estate-next-action.purchase{border-color:color-mix(in srgb,#e8ad35 45%,transparent);box-shadow:inset 3px 0 0 #e8ad35}
.estate-next-action.purchase small{color:#e8ad35}
.estate-next-action.ready{border-color:color-mix(in srgb,#45b97c 45%,transparent);box-shadow:inset 3px 0 0 #45b97c}
.estate-next-action.ready small{color:#45b97c}
.estate-next-action.danger{border-color:color-mix(in srgb,var(--danger) 55%,transparent);box-shadow:inset 3px 0 0 var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--panel))}
.estate-next-action.danger small{color:var(--danger)}
.estate-primary-actions{margin-top:5px;padding:7px;background:transparent;border-color:transparent}
.estate-primary-actions .primary{min-width:145px;font-weight:800}
.estate-board-hint{margin:5px 0 8px;color:var(--muted);font-size:9.5px;line-height:1.35;text-align:center}
.estate-help{margin:8px 0;border:1px solid color-mix(in srgb,var(--muted) 20%,transparent);border-radius:10px;background:color-mix(in srgb,var(--bg) 50%,transparent);overflow:hidden}
.estate-help>summary{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 10px;cursor:pointer;list-style:none;color:var(--strong)}
.estate-help>summary::-webkit-details-marker{display:none}
.estate-help>summary>span{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:color-mix(in srgb,var(--accent) 15%,var(--bg));color:var(--accent);font-weight:900}
.estate-help>summary strong,.estate-help>summary small{display:block}
.estate-help>summary strong{font-size:11px}.estate-help>summary small{margin-top:1px;color:var(--muted);font-size:9px;font-weight:500}
.estate-help>summary>b{color:var(--muted);transition:transform .16s ease}
.estate-help[open]>summary>b{transform:rotate(180deg)}
.estate-help-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:0 9px 9px}
.estate-help-body section{padding:8px;border-radius:8px;background:color-mix(in srgb,var(--panel) 75%,var(--bg));border:1px solid color-mix(in srgb,var(--muted) 14%,transparent)}
.estate-help-body section>strong{display:block;color:var(--strong);font-size:10.5px}.estate-help-body p,.estate-help-body ol{margin:5px 0 0;color:var(--muted);font-size:9.5px;line-height:1.42}
.estate-help-body ol{padding-left:17px}.estate-help-body li+li{margin-top:3px}
.estate-help-tip{grid-column:1/-1;margin:0!important;padding:7px 8px;border-radius:7px;background:color-mix(in srgb,var(--accent) 8%,var(--bg));color:var(--text)!important}
@media (max-width:700px){.estate-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.estate-overview-location{grid-column:1/-1}.estate-help-body{grid-template-columns:minmax(0,1fr)}.estate-help-tip{grid-column:auto}}
.dm-game-panel.game-panel-narrow .estate-start-steps,.dm-game-panel.game-panel-narrow .estate-lobby-flow{grid-template-columns:minmax(0,1fr)}
.dm-game-panel.game-panel-narrow .estate-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
.dm-game-panel.game-panel-narrow .estate-overview-location{grid-column:1/-1}
.dm-game-panel.game-panel-narrow .estate-help-body{grid-template-columns:minmax(0,1fr)}
.dm-game-panel.game-panel-narrow .estate-help-tip{grid-column:auto}
.estate-properties-help{margin:0 0 7px;padding:7px 8px;border-radius:7px;background:color-mix(in srgb,var(--accent) 7%,var(--bg));color:var(--muted);font-size:9.5px;line-height:1.35}
.estate-properties article{grid-template-columns:6px minmax(95px,1fr) repeat(3,minmax(0,auto));align-items:center}
.estate-properties article>div em{display:block;margin-top:3px;color:var(--muted);font-size:8.5px;font-style:normal;line-height:1.25;white-space:normal}
.estate-properties article>button{white-space:nowrap}
.estate-properties article>button small{font-size:8px;opacity:.8}
@media (max-width:700px){.estate-properties article{grid-template-columns:6px minmax(0,1fr)}.estate-properties article>i{grid-column:1;grid-row:1 / span 4}.estate-properties article>div{grid-column:2}.estate-properties article>button{grid-column:2;width:100%}}
.dm-game-panel.game-panel-narrow .estate-properties article{grid-template-columns:6px minmax(0,1fr)}
.dm-game-panel.game-panel-narrow .estate-properties article>i{grid-column:1;grid-row:1 / span 4}
.dm-game-panel.game-panel-narrow .estate-properties article>div,.dm-game-panel.game-panel-narrow .estate-properties article>button{grid-column:2;width:100%}

/* Game API v1 modules — reuse Administration and Games surface theme primitives. */
.game-module-card .game-module-meta{display:block;margin-top:4px;color:var(--muted);font-size:10px;font-weight:650}
.game-module-panel-scroll{min-height:0}
.game-module-runtime-root{min-height:100%;min-width:0}
.modal-administration .admin-game-module-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.modal-administration .admin-game-module-summary>span{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary)}
.modal-administration .admin-game-module-summary strong{min-width:0;color:var(--muted);font-size:11px;font-weight:650}
.modal-administration .admin-game-module-summary :is(b,code){color:var(--strong);font-size:12px}
.modal-administration .admin-game-module-list{display:grid;gap:8px}
.modal-administration .admin-game-module-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary)}
.modal-administration .admin-game-module-row.is-invalid{align-items:start}
.modal-administration .admin-game-module-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:var(--bg-tertiary);font-size:22px}
.modal-administration .admin-game-module-copy{min-width:0}
.modal-administration .admin-game-module-copy>strong,.modal-administration .admin-game-module-copy>small{display:block;min-width:0}
.modal-administration .admin-game-module-copy>strong{color:var(--strong);font-size:14px}
.modal-administration .admin-game-module-copy>small{margin-top:2px;color:var(--muted);font-size:11px;line-height:1.35}
.modal-administration .admin-game-module-copy>p{margin:6px 0 0;color:var(--text);font-size:12px;line-height:1.4}
.modal-administration .admin-game-module-copy>.admin-game-module-error{color:var(--danger)}
.modal-administration .admin-game-module-help{display:grid;gap:5px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary)}
.modal-administration .admin-game-module-help strong{color:var(--strong)}
.modal-administration .admin-game-module-help p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.modal-administration .admin-game-module-help code{width:max-content;max-width:100%;overflow-wrap:anywhere;color:var(--text)}
.modal-administration .admin-game-module-error-state{display:grid;gap:4px;padding:12px;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--danger) 7%,var(--bg-secondary))}
.modal-administration .admin-game-module-error-state small{color:var(--muted)}
@media (max-width:700px){.modal-administration .admin-game-module-summary{grid-template-columns:minmax(0,1fr)}.modal-administration .admin-game-module-row{grid-template-columns:42px minmax(0,1fr)}.modal-administration .admin-game-module-toggle{grid-column:2;justify-self:start}}

/* v1.8.0.2 Arcadia: independent Developer Game API surface. */
.developer-game-api-grid .developer-game-api-card{cursor:default}
.developer-game-api-grid .developer-game-api-card:hover{transform:none;box-shadow:none}
.developer-game-api-card .developer-app-avatar.tiny{font-size:18px}
.developer-game-api-page .developer-doc-header>.developer-game-api-refresh{flex:0 0 auto;align-self:flex-start}
@media(max-width:700px){.developer-game-api-page .developer-doc-header>.developer-game-api-refresh{width:100%}}

/* v1.8.0.2 Arcadia: complete independent Game API reference + Server Admin deployment guide. */
.developer-game-api-page .developer-doc-content{gap:14px}
.developer-game-api-page .developer-doc-card{display:grid;gap:12px;border:1px solid var(--border);border-radius:13px;background:var(--panel)}
.developer-game-api-page .developer-doc-card>p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}
.developer-doc-table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid var(--border);border-radius:10px;background:var(--panel);font-size:12px}
.developer-doc-table th,.developer-doc-table td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;line-height:1.45}
.developer-doc-table th{background:var(--input);color:var(--strong);font-size:11px}
.developer-doc-table td{color:var(--muted)}
.developer-doc-table td:first-child{width:185px;color:var(--text);font-weight:700}
.developer-doc-table tr:last-child td{border-bottom:0}
.developer-doc-list{display:grid;gap:8px;margin:0;padding-left:19px;color:var(--muted);font-size:12px;line-height:1.5}
.developer-game-admin-guide .developer-doc-step{display:grid;gap:7px}
.developer-game-admin-guide .developer-doc-step strong{font-size:13px}
.developer-game-admin-guide .developer-doc-step p{margin:0}
.developer-game-admin-guide .developer-code-block{margin-top:2px}
@media(max-width:700px){.developer-doc-table{display:block;overflow-x:auto}.developer-doc-table td:first-child{width:auto;min-width:140px}.developer-game-api-page .developer-doc-card{padding:16px}}

/* SYSTEM identity and Administration controls. */
.system-tag{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;min-width:18px;min-height:18px;margin-left:5px;padding:0;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--border));border-radius:4px;background:color-mix(in srgb,var(--accent) 16%,var(--bg-tertiary));color:var(--strong)!important;vertical-align:middle;white-space:nowrap}
.system-tag .app-icon{width:11px;height:11px;stroke-width:2.2}
.message .msg-head>.system-tag{flex:0 0 16px;align-self:center;width:16px;height:16px;min-width:16px;min-height:16px;margin:0 6px 0 0;padding:0}
.message .msg-head>.system-tag .app-icon{width:10px;height:10px}
.profile-system-tag{margin-left:7px}
.presence-managed-system,.system-managed-profile-notice{display:flex;align-items:flex-start;gap:10px;margin:8px 0 12px;padding:11px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary)}
.presence-managed-system p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.system-managed-profile-notice{grid-column:1/-1;margin:0 0 6px}
.system-managed-profile-notice>div{display:grid;gap:2px;min-width:0}
.system-managed-profile-notice strong{color:var(--strong);font-size:13px}
.system-managed-profile-notice small{color:var(--muted);font-size:12px;line-height:1.4}
.modal-administration .admin-system-settings{gap:30px}
.modal-administration .admin-system-identity{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;row-gap:28px;align-items:start}
.modal-administration .admin-system-identity>label,.modal-administration .admin-system-status-field{display:grid;gap:12px;min-width:0;margin:0}
.modal-administration .admin-system-user-field,.modal-administration .admin-system-presence-field{grid-template-rows:18px 40px auto;align-content:start;align-items:start}
.modal-administration .admin-system-identity>label>span,.modal-administration .admin-system-status-field>span,.modal-administration .admin-system-auto-composer label>span,.modal-administration .admin-system-places>legend{color:var(--strong);font-size:12px;font-weight:650}
.modal-administration .admin-system-identity>label>span{display:flex;align-items:center;min-height:18px;line-height:18px}
.modal-administration .admin-system-user-field>select.field,.modal-administration .admin-system-presence-field>select.field{display:block;width:100%;min-width:0;box-sizing:border-box;align-self:start;margin:0!important}
.modal-administration .admin-system-identity small{grid-row:3;color:var(--muted);font-size:11px;line-height:1.5;margin:0;padding-top:1px}
.modal-administration .admin-system-wide{grid-column:1/-1}
.modal-administration .admin-system-description-field{grid-template-rows:18px auto;align-content:start;align-items:start}
.modal-administration .admin-system-description-field>textarea.field{display:block;width:100%;min-width:0;min-height:112px!important;margin:0!important;padding:12px!important;line-height:1.5;resize:vertical}
.modal-administration .admin-system-status-field>div{display:grid;grid-template-columns:minmax(76px,110px) minmax(0,1fr);gap:16px}
.modal-administration .admin-system-settings :is(input.field,select.field){height:40px!important;min-height:40px!important;line-height:normal!important}
.modal-administration .admin-system-settings input.field{padding:0 12px!important}
.modal-administration .admin-system-settings select.field{padding:0 38px 0 12px!important;background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%!important}
.modal-administration .admin-system-actions{display:flex;align-items:center;justify-content:flex-end;border-bottom:1px solid var(--border);padding:2px 0 30px;margin:0}
.modal-administration .admin-system-actions .primary{height:40px!important;min-height:40px!important;margin:0!important;padding:9px 14px!important}

.modal-administration .admin-emergency-protocol-settings{position:relative}
.modal-administration .admin-emergency-protocol-status{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:13px;padding:15px 16px;border:1px solid color-mix(in srgb,var(--danger) 34%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--danger) 7%,var(--bg-secondary));margin-bottom:20px}
.modal-administration .admin-emergency-protocol-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:color-mix(in srgb,var(--danger) 14%,var(--input));color:var(--danger)}
.modal-administration .admin-emergency-protocol-icon .app-icon{width:19px;height:19px}
.modal-administration .admin-emergency-protocol-status>div{display:grid;gap:4px;min-width:0}
.modal-administration .admin-emergency-protocol-status>div>strong{color:var(--strong);font-size:13px}
.modal-administration .admin-emergency-protocol-status>div>small{color:var(--muted);font-size:11px;line-height:1.45}
.modal-administration .admin-emergency-siren{display:grid;gap:16px;padding:0 0 30px;border-bottom:1px solid var(--border)}
.modal-administration .admin-emergency-siren>.admin-subsection-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0}
.modal-administration .admin-emergency-siren>.admin-subsection-head>div{display:grid;gap:7px;min-width:0}
.modal-administration .admin-emergency-siren>.admin-subsection-head strong{color:var(--strong);font-size:14px}
.modal-administration .admin-emergency-siren>.admin-subsection-head small{max-width:680px;color:var(--muted);font-size:11px;line-height:1.5}
.modal-administration .admin-emergency-siren-state{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:24px;padding:3px 9px;border:1px solid var(--border);border-radius:999px;background:var(--bg-secondary);color:var(--muted);font-size:10px;font-weight:800;line-height:1;letter-spacing:.05em}
.modal-administration .admin-emergency-siren-state[data-siren-active="1"]{border-color:color-mix(in srgb,var(--danger) 52%,var(--border));background:color-mix(in srgb,var(--danger) 12%,var(--bg-secondary));color:var(--danger)}
.modal-administration .admin-emergency-siren-control{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 18px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary)}
.modal-administration .admin-emergency-siren-file{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:12px;min-width:0}
.modal-administration .admin-emergency-siren-file-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:color-mix(in srgb,var(--accent) 12%,var(--input));color:var(--accent)}
.modal-administration .admin-emergency-siren-file-icon .app-icon{width:17px;height:17px}
.modal-administration .admin-emergency-siren-file>div{display:grid;gap:4px;min-width:0}
.modal-administration .admin-emergency-siren-file strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--strong);font-size:12px}
.modal-administration .admin-emergency-siren-file small,.modal-administration .admin-emergency-siren-note{color:var(--muted);font-size:11px;line-height:1.45}
.modal-administration .admin-emergency-siren-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px}
.modal-administration .admin-emergency-siren-delay{display:grid;gap:7px;padding:14px 16px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary)}
.modal-administration .admin-emergency-siren-delay>span{color:var(--strong);font-size:11px;font-weight:700}
.modal-administration .admin-emergency-siren-delay>div{display:grid;grid-template-columns:minmax(90px,140px) auto auto;align-items:center;justify-content:start;gap:9px}
.modal-administration .admin-emergency-siren-delay-input{width:100%;min-width:0;margin:0!important}
.modal-administration .admin-emergency-siren-delay>div>span{color:var(--muted);font-size:11px}
.modal-administration .admin-emergency-siren-delay-save{min-height:34px!important;height:34px!important;margin:0!important;padding:6px 12px!important}
.modal-administration .admin-emergency-siren-delay small{color:var(--muted);font-size:11px;line-height:1.45}
.modal-administration .admin-emergency-siren-upload{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px!important;height:36px!important;margin:0!important;padding:7px 12px!important;white-space:nowrap}
.modal-administration .admin-emergency-siren-upload .app-icon{width:14px;height:14px}
.modal-administration .admin-emergency-siren-toggle.is-disabled{opacity:.5}
.modal-administration .admin-system-alerts{display:grid;gap:18px;padding:0 0 30px;border-bottom:1px solid var(--border)}
.modal-administration .admin-system-alerts>.admin-subsection-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0}
.modal-administration .admin-system-alerts>.admin-subsection-head>div{display:grid;gap:7px;min-width:0}
.modal-administration .admin-system-alerts>.admin-subsection-head strong{color:var(--strong);font-size:14px}
.modal-administration .admin-system-alerts>.admin-subsection-head small{max-width:680px;color:var(--muted);font-size:11px;line-height:1.5}
.modal-administration .admin-system-alert-priority{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:3px 9px;border:1px solid color-mix(in srgb,var(--danger) 52%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--danger) 12%,var(--bg-secondary));color:var(--danger);font-size:10px;font-weight:800;line-height:1;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.modal-administration .admin-system-alert-composer{display:grid;gap:18px;padding:18px;border:1px solid color-mix(in srgb,var(--danger) 34%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--danger) 4%,var(--bg-secondary))}
.modal-administration .admin-system-alert-composer>label{display:grid;grid-template-rows:18px auto;align-content:start;gap:10px;min-width:0;margin:0}
.modal-administration .admin-system-alert-composer>label>span{display:flex;align-items:center;min-height:18px;color:var(--strong);font-size:12px;font-weight:650;line-height:18px}
.modal-administration .admin-system-alert-composer :is(input.field,textarea.field){display:block;width:100%;min-width:0;margin:0!important}
.modal-administration .admin-system-alert-composer textarea.field{min-height:126px!important;padding:12px!important;resize:vertical;line-height:1.5}
.modal-administration .admin-system-alert-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;min-width:0}
.modal-administration .admin-system-alert-actions>small{max-width:560px;color:var(--muted);font-size:11px;line-height:1.45}
.modal-administration .admin-system-alert-send{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:136px;min-height:40px;padding:9px 14px;margin:0!important;font-weight:700;white-space:nowrap}
.modal-administration .admin-system-alert-send .app-icon{width:15px;height:15px}
.modal-administration .admin-system-auto-replies{display:grid;gap:26px}
.modal-administration .admin-system-auto-replies>.admin-subsection-head{margin:0}
.modal-administration .admin-system-auto-replies>.admin-subsection-head>div{display:grid;gap:7px}
.modal-administration .admin-system-auto-composer{display:grid;grid-template-columns:minmax(160px,.58fr) minmax(96px,.34fr) minmax(240px,1fr);align-items:start;column-gap:22px;row-gap:26px}
.modal-administration .admin-system-auto-composer label{display:grid;grid-template-rows:18px auto;align-content:start;gap:12px;min-width:0;margin:0}
.modal-administration .admin-system-auto-composer label>span,.modal-administration .admin-system-places>legend{display:flex;align-items:center;min-height:18px;line-height:18px}
.modal-administration .admin-system-auto-composer :is(input.field,select.field){width:100%;min-width:0;height:40px!important;min-height:40px!important;line-height:normal!important}
.modal-administration .admin-system-auto-composer input.field{padding:0 12px!important}
.modal-administration .admin-system-auto-composer select.field{padding:0 38px 0 12px!important;background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%!important}
.modal-administration .admin-system-prefix-field.is-disabled{opacity:.58}.modal-administration .admin-system-prefix-field .field:disabled{cursor:not-allowed}
.modal-administration .admin-system-places{display:grid;grid-column:1/-1;grid-template-rows:18px auto;align-content:start;gap:12px;min-width:0;margin:0;padding:0;border:0}
.modal-administration .admin-system-places>legend{padding:0;margin:0}
.modal-administration .admin-system-place-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.modal-administration .admin-system-place-options label{position:relative;display:block;min-width:0;margin:0;cursor:pointer}
.modal-administration .admin-system-place-options input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}
.modal-administration .admin-system-place-options label>span{display:flex;align-items:center;justify-content:center;gap:7px;height:40px;min-height:40px;padding:8px 10px;border:1px solid var(--border);border-radius:4px;background:var(--admin-control-bg,var(--input));color:var(--muted);line-height:18px;transition:background .14s ease,border-color .14s ease,color .14s ease}
.modal-administration .admin-system-place-options .app-icon{width:15px;height:15px;flex:0 0 auto}
.modal-administration .admin-system-place-options b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;line-height:16px}
.modal-administration .admin-system-place-options input:checked+span{border-color:color-mix(in srgb,var(--accent) 68%,var(--border));background:color-mix(in srgb,var(--accent) 16%,var(--admin-control-bg,var(--input)));color:var(--strong)}
.modal-administration .admin-system-place-options input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.modal-administration .admin-system-response-field{position:relative;grid-column:1/-1}
.modal-administration .admin-system-auto-composer textarea.field{display:block;width:100%;min-width:0;min-height:112px!important;margin:0!important;padding:12px!important;resize:vertical;line-height:1.5}
.modal-administration .admin-system-auto-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}
.modal-administration .admin-system-auto-actions :is(.primary,.secondary){width:auto;min-width:150px;min-height:40px!important;height:40px!important;margin:0!important;padding:9px 14px!important;justify-content:center}
.modal-administration .admin-system-auto-actions .admin-system-auto-cancel[hidden]{display:none}
.modal-administration .admin-system-server-values{display:grid;gap:14px;padding:17px 18px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary)}
.modal-administration .admin-system-server-values>strong{color:var(--strong);font-size:12px}
.modal-administration .admin-system-server-values>span,.modal-administration .admin-system-server-values>small{color:var(--muted);font-size:11px;line-height:1.45}
.modal-administration .admin-system-variable-chips{display:grid;gap:14px}.modal-administration .admin-system-variable-group{display:grid;gap:9px}.modal-administration .admin-system-variable-group>strong{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.modal-administration .admin-system-variable-group>div{display:flex;flex-wrap:wrap;gap:8px}.modal-administration .admin-system-variable-loading{color:var(--muted);font-size:11px}
.modal-administration .admin-system-variable-chips button{min-height:28px;padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--input);color:var(--strong);font:600 11px/1.2 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;cursor:pointer}
.modal-administration .admin-system-variable-chips button:hover,.modal-administration .admin-system-variable-chips button:focus-visible{background:var(--hover);border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}
.modal-administration .admin-system-variable-chips button code{font:inherit;color:inherit}.modal-administration .admin-system-variable-chips button span{font:600 9px/1 sans-serif;color:var(--muted);margin-left:4px}
.modal-administration .admin-system-variable-menu{position:absolute;left:0;right:0;bottom:calc(100% + 6px);z-index:1300;max-height:260px;overflow:auto;padding:6px;border:1px solid var(--border);border-radius:8px;background:var(--popover,var(--sidebar));box-shadow:0 8px 24px rgba(0,0,0,.34)}
.modal-administration .admin-system-variable-menu[hidden]{display:none}
.modal-administration .admin-system-variable-menu button{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:10px;width:100%;min-height:40px;padding:6px 8px;border:0;border-radius:5px;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.modal-administration .admin-system-variable-menu button:hover,.modal-administration .admin-system-variable-menu button.active{background:var(--hover)}
.modal-administration .admin-system-variable-menu code{color:var(--strong);font-size:11px}.modal-administration .admin-system-variable-menu span{color:var(--muted);font-size:11px}
.modal-administration .admin-system-auto-help{display:flex;align-items:flex-start;gap:14px;padding:17px 18px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--muted)}
.modal-administration .admin-system-auto-help svg{flex:0 0 auto;width:16px;height:16px;margin-top:1px;color:var(--accent)}
.modal-administration .admin-system-auto-help p{margin:0;font-size:11px;line-height:1.45}
.modal-administration .admin-system-auto-list{display:grid;gap:16px}
.modal-administration .admin-system-auto-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px 15px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary)}
.modal-administration .admin-system-auto-row-main{display:grid;gap:11px;min-width:0}
.modal-administration .admin-system-auto-row-actions{display:flex;align-items:center;gap:8px}
.modal-administration .admin-system-auto-row.is-editing{border-color:color-mix(in srgb,var(--accent) 62%,var(--border));background:color-mix(in srgb,var(--accent) 7%,var(--bg-secondary))}
.modal-administration .admin-system-auto-row-meta{display:flex;align-items:center;flex-wrap:wrap;gap:9px;min-width:0}
.modal-administration .admin-system-auto-row code{display:inline-block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--strong)}
.modal-administration .admin-system-rule-scopes{display:inline-flex;align-items:center;flex-wrap:wrap;gap:7px}
.modal-administration .admin-system-match-badge,.modal-administration .admin-system-scope-badge,.modal-administration .admin-system-prefix-badge{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border:1px solid var(--border);border-radius:999px;background:var(--bg-secondary);color:var(--muted);font-size:10px;font-weight:700;line-height:1;white-space:nowrap}
.modal-administration .admin-system-auto-row-response{display:grid;grid-template-columns:14px minmax(0,1fr);align-items:start;gap:9px;color:var(--muted)}
.modal-administration .admin-system-auto-row-response p{min-width:0;margin:0;overflow-wrap:anywhere;color:var(--text);font-size:12px;line-height:1.45}
.modal-administration .admin-system-empty,.modal-administration .admin-system-loading{display:grid;gap:6px;padding:16px;border:1px dashed var(--border);border-radius:8px;color:var(--muted)}
.modal-administration .admin-system-empty strong{color:var(--strong);font-size:13px}
.modal-administration .admin-system-empty small{font-size:11px}
@media(max-width:900px){.modal-administration .admin-system-auto-composer{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:20px;row-gap:24px}.modal-administration .admin-system-match-field{grid-column:1}.modal-administration .admin-system-prefix-field{grid-column:2}.modal-administration .admin-system-trigger-field,.modal-administration .admin-system-places,.modal-administration .admin-system-response-field,.modal-administration .admin-system-auto-actions{grid-column:1/-1}.modal-administration .admin-system-auto-actions{justify-content:flex-end}}
@media(max-width:600px){.modal-administration .admin-system-identity{grid-template-columns:minmax(0,1fr);row-gap:24px}.modal-administration .admin-system-settings{gap:24px}.modal-administration .admin-system-wide{grid-column:auto}.modal-administration .admin-system-status-field>div{grid-template-columns:76px minmax(0,1fr)}.modal-administration .admin-system-auto-composer{grid-template-columns:minmax(0,1fr);row-gap:22px}.modal-administration .admin-system-match-field,.modal-administration .admin-system-prefix-field,.modal-administration .admin-system-places,.modal-administration .admin-system-trigger-field,.modal-administration .admin-system-response-field,.modal-administration .admin-system-auto-actions{grid-column:1;grid-row:auto}.modal-administration .admin-system-place-options{grid-template-columns:minmax(0,1fr)}.modal-administration .admin-system-auto-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.modal-administration .admin-system-auto-actions :is(.primary,.secondary){width:100%;min-width:0}.modal-administration .admin-system-auto-row{align-items:start}.modal-administration .admin-system-auto-row code{max-width:100%}}
.modal.system-alert-modal{width:min(560px,calc(100vw - 48px));border:1px solid color-mix(in srgb,var(--danger) 34%,var(--border));box-shadow:0 20px 64px rgba(0,0,0,.48)}
.system-alert-dialog{display:grid;gap:20px;min-width:0}
.system-alert-hero{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:start;gap:14px}
.system-alert-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:color-mix(in srgb,var(--danger) 16%,var(--bg-secondary));color:var(--danger);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--danger) 38%,transparent)}
.system-alert-icon .app-icon{width:23px;height:23px;stroke-width:2.2}
.system-alert-hero>div{display:grid;justify-items:start;gap:5px;min-width:0}
.system-alert-priority{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;border:1px solid color-mix(in srgb,var(--danger) 48%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--danger) 12%,var(--bg-secondary));color:var(--danger);font-size:10px;font-weight:800;line-height:1;text-transform:uppercase;letter-spacing:.045em}
.system-alert-hero h2{max-width:100%;margin:0;color:var(--strong);font-size:21px;line-height:1.25;overflow-wrap:anywhere}
.system-alert-hero p{margin:0;color:var(--muted);font-size:12px;line-height:1.4}
.system-alert-message{max-height:min(44dvh,360px);overflow:auto;padding:16px 17px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text);font-size:14px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.system-alert-meta{color:var(--muted);font-size:11px;line-height:1.4}
.system-alert-actions{display:flex;justify-content:flex-end;border-top:1px solid var(--border);padding-top:18px}
.system-alert-actions .system-alert-ack{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:140px;min-height:40px;margin:0!important;padding:9px 14px!important}
.system-alert-actions .app-icon{width:15px;height:15px}
@media(max-width:600px){.modal-administration .admin-emergency-protocol-status{grid-template-columns:42px minmax(0,1fr)}.modal-administration .admin-emergency-protocol-status>.admin-emergency-siren-state{grid-column:1/-1;justify-self:start}.modal-administration .admin-emergency-siren>.admin-subsection-head{display:grid}.modal-administration .admin-emergency-siren-state{justify-self:start}.modal-administration .admin-emergency-siren-control{grid-template-columns:minmax(0,1fr);padding:15px}.modal-administration .admin-emergency-siren-actions{justify-content:space-between}.modal-administration .admin-emergency-siren-delay>div{grid-template-columns:minmax(0,1fr) auto}.modal-administration .admin-emergency-siren-delay-save{grid-column:1/-1;width:100%}.modal-administration .admin-emergency-siren-upload{min-width:0}.modal-administration .admin-system-alerts>.admin-subsection-head{display:grid}.modal-administration .admin-system-alert-priority{justify-self:start}.modal-administration .admin-system-alert-composer{padding:15px}.modal-administration .admin-system-alert-actions{display:grid;gap:14px}.modal-administration .admin-system-alert-send{width:100%;min-width:0}.modal.system-alert-modal{width:min(100% - 24px,560px)}.system-alert-hero{grid-template-columns:42px minmax(0,1fr);gap:12px}.system-alert-icon{width:42px;height:42px}.system-alert-message{max-height:46dvh}.system-alert-actions .system-alert-ack{width:100%}}
.system-managed-server-bio{display:block;margin-top:2px;color:var(--muted);font-size:11px;line-height:1.4}

/* v1.9.0.14 — refined Discord-style application-wide Custom Status emoji sizing.
   The emoji owns a dedicated, unclipped visual slot. Only the text copy may
   ellipsize, so color-emoji ascenders/descenders remain completely visible. */
.custom-status-text.custom-status-with-emoji{
  --custom-status-emoji-box:17px;
  --custom-status-emoji-font:13px;
  display:grid;
  grid-template-columns:var(--custom-status-emoji-box) minmax(0,1fr);
  align-items:center;
  column-gap:5px;
  min-width:0;
  max-width:100%;
  min-height:var(--custom-status-emoji-box);
  overflow:visible;
  text-overflow:clip;
  white-space:nowrap;
  line-height:normal;
  vertical-align:middle;
}
.custom-status-text.custom-status-with-emoji>.emoji-glyph{
  display:flex;
  align-items:center;
  justify-content:center;
  align-self:center;
  justify-self:center;
  box-sizing:border-box;
  width:var(--custom-status-emoji-box);
  min-width:var(--custom-status-emoji-box);
  height:var(--custom-status-emoji-box);
  min-height:var(--custom-status-emoji-box);
  margin:0;
  padding:0;
  overflow:visible;
  font-size:var(--custom-status-emoji-font);
  line-height:1;
  vertical-align:middle;
  transform:none;
}
.custom-status-text.custom-status-with-emoji>.custom-status-copy{
  display:block;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  line-height:1.35;
}
/* Compact status hosts must not clip the dedicated emoji slot. Their child
   text node remains bounded by .custom-status-copy, so rows still truncate. */
.member .member-custom-status,
.dm-row.dm-user-row .dm-user-status,
.user-meta>small.profile-preview-status,
.mobile-youbar-identity>small.profile-preview-status,
.account-custom-status,
.profile-preview-status{
  overflow:visible;
  text-overflow:clip;
}
.member .member-custom-status>.custom-status-text,
.dm-row.dm-user-row .dm-user-status>.custom-status-text,
.user-meta>small.profile-preview-status>.custom-status-text,
.mobile-youbar-identity>small.profile-preview-status>.custom-status-text,
.account-custom-status>.custom-status-text,
.profile-preview-status>.custom-status-text{
  width:100%;
  max-width:100%;
  min-width:0;
}
.profile-custom-status .custom-status-text.custom-status-with-emoji,
.profile-preview-status .custom-status-text.custom-status-with-emoji,
.account-custom-status .custom-status-text.custom-status-with-emoji{
  --custom-status-emoji-box:18px;
  --custom-status-emoji-font:14px;
}
/* Profile modal status may wrap like Discord. Keep the emoji in its first
   column and allow only the copy column to wrap onto additional lines. */
.modal-profile .profile-custom-status>.custom-status-text.custom-status-with-emoji{
  --custom-status-emoji-box:18px;
  --custom-status-emoji-font:14px;
  align-items:start;
}
.modal-profile .profile-custom-status>.custom-status-text.custom-status-with-emoji>.emoji-glyph{
  margin-top:1px;
}
.modal-profile .profile-custom-status>.custom-status-text.custom-status-with-emoji>.custom-status-copy{
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  overflow-wrap:anywhere;
  line-height:20px;
}
/* v1.9.0.13 — compact user-bar Custom Status emoji sizing. */
/* User bar is intentionally more compact than profile/member surfaces. Keep
   the dedicated unclipped emoji slot, but reduce its visual weight so the
   Custom Status sits proportionally beside the compact user-bar text. */
.userbar .user-meta>small.profile-preview-status>.custom-status-text.custom-status-with-emoji,
.mobile-youbar-identity>small.profile-preview-status>.custom-status-text.custom-status-with-emoji{
  --custom-status-emoji-box:16px;
  --custom-status-emoji-font:12px;
  column-gap:5px;
}
/* Emoji picker buttons also reserve the glyph's complete paint box. */
.status-emoji-trigger,.settings-status-emoji-trigger{
  width:40px;
  min-width:40px;
  height:40px;
  min-height:40px;
  padding:0!important;
  overflow:visible;
  font-size:22px;
  line-height:normal;
}
.status-emoji-trigger .emoji-glyph,.settings-status-emoji-trigger .emoji-glyph{
  display:flex;
  align-items:center;
  justify-content:center;
  width:24px;
  min-width:24px;
  height:24px;
  min-height:24px;
  margin:0;
  padding:0;
  overflow:visible;
  font-size:20px;
  line-height:1;
  transform:none;
}
.settings-custom-status-row,.custom-status-row{
  min-height:40px;
  align-items:center;
}
.settings-custom-status-row{gap:10px}
.custom-status-row{gap:8px}
.custom-status-row input,.custom-status-row>.primary{min-height:40px}

/* v1.9.0.24 — SYSTEM Custom Status uses the shared emoji picker. */
.modal-administration .admin-system-status-field>div{
  grid-template-columns:40px minmax(0,1fr);
  align-items:center;
  gap:10px;
}
.modal-administration .admin-system-status-field .settings-status-emoji-trigger{
  width:40px;
  min-width:40px;
  height:40px;
  min-height:40px;
  margin:0;
}
.modal-administration .admin-system-status-field input[type="hidden"]{display:none!important}

/* v1.9.0.27 — application-wide Discord-like image fetching state. */
img.app-image-fetching{
  background-color:color-mix(in srgb,var(--panel) 76%,var(--bg));
  background-image:linear-gradient(105deg,transparent 18%,color-mix(in srgb,var(--muted) 18%,transparent) 38%,color-mix(in srgb,var(--strong) 9%,transparent) 50%,color-mix(in srgb,var(--muted) 18%,transparent) 62%,transparent 82%);
  background-repeat:no-repeat;
  background-size:240% 100%;
  background-position:125% 0;
  animation:app-image-fetching 1.25s ease-in-out infinite;
}
img.app-image-unavailable{min-width:20px;min-height:20px;color:transparent!important;font-size:0!important}
@keyframes app-image-fetching{to{background-position:-125% 0}}
@media (prefers-reduced-motion:reduce){img.app-image-fetching{animation:none;background-image:none}}

.message-context-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 16px;background:var(--panel);color:var(--text);border-bottom:1px solid var(--border);font-size:13px}.message-context-bar button{border:0;border-radius:4px;padding:5px 9px;background:var(--hover);color:var(--text);cursor:pointer}.message-context-bar button:hover{color:var(--accent)}
/* Application identity artwork: packaged application logo surfaces. */
.brandmark.app-logo-brandmark{background:transparent;color:inherit;border-radius:0;box-shadow:none;overflow:visible;display:grid;place-items:center}
.brandmark.app-logo-brandmark img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.auth-brand-lockup .brandmark.app-logo-brandmark{overflow:visible}

/* v1.9.0.77 — seasonal authentication themes are image-driven only.
   Normal keeps the built-in background; Easter/Halloween/Christmas use the
   administrator-uploaded image as the complete background when configured. */
.auth.auth-screen[data-auth-background-configured="1"]{
  background-image:var(--auth-theme-image);
  background-color:#313338;
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}
.auth.auth-screen[data-auth-background-configured="1"]::before,
.auth.auth-screen[data-auth-background-configured="1"]::after,
.auth.auth-screen[data-auth-background-configured="1"] .auth-scene{display:none!important;content:none!important}
/* A seasonal option without an uploaded image intentionally falls back to the
   same built-in background as Normal; no legacy seasonal CSS artwork remains. */


.admin-auth-background-library{grid-column:1/-1;display:grid;gap:14px;padding-top:4px}
.admin-auth-background-asset{display:grid;grid-template-columns:148px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--input);box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
.admin-auth-background-preview{position:relative;min-height:92px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:var(--auth-theme-image,linear-gradient(135deg,rgba(88,101,242,.34),rgba(44,56,175,.66)));background-size:cover;background-position:center;overflow:hidden;display:flex;align-items:flex-end;justify-content:flex-start;padding:10px}
.admin-auth-background-preview::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,12,18,.06),rgba(10,12,18,.55))}
.admin-auth-background-preview span{position:relative;z-index:1;display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:rgba(10,12,18,.55);border:1px solid rgba(255,255,255,.12);color:#fff;font-weight:700;font-size:12px;letter-spacing:.02em;text-transform:uppercase}
.admin-auth-background-copy{display:grid;gap:4px;min-width:0}
.admin-auth-background-copy strong{font-size:15px}
.admin-auth-background-file{font-weight:600;color:var(--text)}
.admin-auth-background-copy small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-auth-background-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
@media (max-width: 860px){.admin-auth-background-asset{grid-template-columns:1fr}.admin-auth-background-actions{justify-content:flex-start}}

/* v1.9.0.77 — expanded pre-auth language selector with consistent CSS-rendered flags. */
.auth-language-switcher{
  position:fixed;
  top:24px;
  right:30px;
  z-index:6;
  width:max-content;
  color:#f2f3f5;
  font-size:14px;
}
.auth-language-switcher>summary{list-style:none}
.auth-language-switcher>summary::-webkit-details-marker{display:none}
.auth-language-trigger{
  display:flex;
  align-items:center;
  gap:9px;
  min-height:40px;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:rgba(17,18,20,.72);
  color:#f2f3f5;
  box-shadow:0 8px 26px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.05);
  -webkit-backdrop-filter:blur(16px) saturate(130%);
  backdrop-filter:blur(16px) saturate(130%);
  cursor:pointer;
  user-select:none;
  transition:background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease;
}
.auth-language-trigger:hover{background:rgba(30,31,34,.86);border-color:rgba(255,255,255,.22);box-shadow:0 10px 30px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.06)}
.auth-language-trigger:focus-visible{outline:2px solid #00a8fc;outline-offset:3px}
.auth-language-trigger>.app-icon{width:15px;height:15px;color:#949ba4;transition:transform .16s ease}
.auth-language-switcher[open] .auth-language-trigger>.app-icon{transform:rotate(180deg)}
.auth-language-current{min-width:62px;font-weight:650;letter-spacing:-.01em;text-align:left}
.auth-language-menu{
  position:absolute;
  top:calc(100% + 9px);
  right:0;
  width:224px;
  padding:7px;
  border:1px solid #3f4147;
  border-radius:14px;
  background:#111214;
  box-shadow:0 18px 48px rgba(0,0,0,.42),0 4px 12px rgba(0,0,0,.24);
  transform-origin:top right;
  animation:auth-language-menu-in .14s ease-out;
  max-height:min(420px,calc(100dvh - 96px));
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}
@keyframes auth-language-menu-in{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.auth-language-option{
  display:grid;
  grid-template-columns:32px minmax(0,1fr) 20px;
  align-items:center;
  gap:10px;
  width:100%;
  min-height:46px;
  padding:6px 9px;
  border:0;
  border-radius:9px;
  background:transparent;
  color:#dbdee1;
  text-align:left;
  cursor:pointer;
  transition:background .14s ease,color .14s ease;
}
.auth-language-option:hover,.auth-language-option:focus-visible{background:#2b2d31;color:#fff;outline:none}
.auth-language-option.active{background:rgba(88,101,242,.16);color:#fff}
.auth-language-option:disabled{opacity:.58;cursor:wait}
.auth-language-flag{
  position:relative;
  display:inline-block;
  width:30px;
  height:20px;
  flex:0 0 30px;
  overflow:hidden;
  border-radius:4px;
  background:#2b2d31;
  box-shadow:0 0 0 1px rgba(255,255,255,.14),0 2px 5px rgba(0,0,0,.22);
}
.auth-language-flag-en{
  background:
    linear-gradient(90deg,transparent 43%,#fff 43% 57%,transparent 57%),
    linear-gradient(transparent 38%,#fff 38% 62%,transparent 62%),
    linear-gradient(90deg,transparent 47%,#c8102e 47% 53%,transparent 53%),
    linear-gradient(transparent 45%,#c8102e 45% 55%,transparent 55%),
    linear-gradient(33deg,transparent 43%,#fff 43% 48%,#c8102e 48% 52%,#fff 52% 57%,transparent 57%),
    linear-gradient(-33deg,transparent 43%,#fff 43% 48%,#c8102e 48% 52%,#fff 52% 57%,transparent 57%),
    #012169;
}
.auth-language-flag-fr{background:linear-gradient(90deg,#0055a4 0 33.333%,#fff 33.333% 66.666%,#ef4135 66.666% 100%)}
.auth-language-flag-es{background:linear-gradient(180deg,#aa151b 0 25%,#f1bf00 25% 75%,#aa151b 75% 100%)}

.auth-language-flag-de{background:linear-gradient(180deg,#000 0 33.333%,#dd0000 33.333% 66.666%,#ffce00 66.666% 100%)}
.auth-language-flag-it{background:linear-gradient(90deg,#009246 0 33.333%,#fff 33.333% 66.666%,#ce2b37 66.666% 100%)}
.auth-language-flag-pt{background:linear-gradient(90deg,#046a38 0 40%,#da291c 40% 100%)}
.auth-language-flag-nl{background:linear-gradient(180deg,#ae1c28 0 33.333%,#fff 33.333% 66.666%,#21468b 66.666% 100%)}
.auth-language-flag-pl{background:linear-gradient(180deg,#fff 0 50%,#dc143c 50% 100%)}
.auth-language-selected-flag{width:27px;height:18px;flex-basis:27px}
.auth-language-option.active .auth-language-flag{box-shadow:0 0 0 2px #5865f2,0 2px 7px rgba(0,0,0,.28)}
.auth-language-option-copy{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}
.auth-language-option-check{display:grid;place-items:center;color:#23a55a;opacity:0;transform:scale(.82);transition:opacity .14s ease,transform .14s ease}
.auth-language-option-check .app-icon{width:17px;height:17px}
.auth-language-option.active .auth-language-option-check{opacity:1;transform:scale(1)}
@media (prefers-reduced-motion:reduce){.auth-language-menu{animation:none}.auth-language-trigger,.auth-language-trigger>.app-icon,.auth-language-option,.auth-language-option-check{transition:none}}

/* v1.9.0.77 — auth cookie settings keeps the active accent bright and readable. */
.auth.auth-screen .auth-cookie-settings{
 color:color-mix(in srgb,var(--brand,var(--accent)) 72%,#fff)!important;
 transition:color .15s ease,opacity .15s ease,text-decoration-color .15s ease;
 text-decoration-color:color-mix(in srgb,currentColor 55%,transparent);
}
.auth.auth-screen .auth-cookie-settings:hover,
.auth.auth-screen .auth-cookie-settings:focus-visible{
 color:color-mix(in srgb,var(--brand,var(--accent)) 58%,#fff)!important;
 text-decoration:underline;
 text-decoration-color:currentColor;
}
:root[data-theme="light"] .auth.auth-screen .auth-cookie-settings{
 color:color-mix(in srgb,var(--brand,var(--accent)) 88%,#000)!important;
}
:root[data-theme="light"] .auth.auth-screen .auth-cookie-settings:hover,
:root[data-theme="light"] .auth.auth-screen .auth-cookie-settings:focus-visible{
 color:color-mix(in srgb,var(--brand,var(--accent)) 78%,#000)!important;
}


/* v1.9.0.77 — cohesive modern authentication geometry. Link buttons intentionally keep their existing shape. */
.auth.auth-screen .auth-card-discord,
.auth.auth-screen .auth-two-factor-card{border-radius:var(--auth-card-radius)}
.auth.auth-screen .auth-card-discord :is(input.field,select.field,textarea.field),
.auth.auth-screen .auth-two-factor-card :is(input.field,select.field,textarea.field),
.auth.auth-screen .auth-card-discord button.primary:not(.link),
.auth.auth-screen .auth-two-factor-card button.primary:not(.link){border-radius:var(--auth-control-radius)}
.auth.auth-screen :is(.auth-beta-badge,.auth-qr-entry-notice,.auth-qr-code,.qr-login-device-card){border-radius:var(--auth-panel-radius)}
.auth.auth-screen .auth-error .error{border-radius:var(--auth-control-radius)}
