/* Two complete palettes. The ambient background belongs to the whole app. */
:root,:root[data-theme=light]{color-scheme:light;--bg:#f5f4fa;--panel:#ffffff;--surface:#ffffff;--surface-alt:#f0eef7;--text:#242338;--muted:#656477;--line:#dedce9;--accent:#6744cf;--accent-ink:#ffffff;--tint:#eae3fa;--sidebar:#faf9fe;--sidebar-text:#565369;--wall-image:none;--ambient-a:#ddd5f45c;--ambient-b:#d3e7f154;--glass:#ffffffeb;--danger:#b52c49;--focus-ring:#8964e899;--app-header:58px;--app-nav:68px}
:root[data-theme=dark]{color-scheme:dark;--bg:#11131c;--panel:#1c1f2b;--surface:#1c1f2b;--surface-alt:#242838;--text:#f0eff8;--muted:#b0afc3;--line:#36384b;--accent:#b7a1ff;--accent-ink:#201538;--tint:#352b4f;--sidebar:#181b26;--sidebar-text:#bebacf;--ambient-a:#624b8524;--ambient-b:#244a6926;--glass:#1c1f2bef;--danger:#ff9db4;--focus-ring:#b7a1ff99}
html{min-height:100%;background:var(--bg)}
body{min-height:100dvh;color:var(--text);background:radial-gradient(ellipse at 0 0,var(--ambient-a),transparent 65%),radial-gradient(ellipse at 100% 100%,var(--ambient-b),transparent 65%),var(--bg);background-attachment:fixed;font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
body>header{height:var(--app-header);padding:0 24px;background:var(--glass);color:var(--text);border-bottom:1px solid var(--line);box-shadow:none}
.brand{color:var(--text);font-size:22px;letter-spacing:-.6px;gap:9px}.brand .brand-image{width:32px;height:32px;border-radius:11px}.brand small,.side-caption,.side-bottom{display:none}#identity a{color:var(--text)}
#shell>aside{top:var(--app-header);background:var(--glass);border-right:1px solid var(--line);padding:18px 12px;width:196px}
#shell>aside a{color:var(--sidebar-text);background:transparent;box-shadow:none;min-height:46px;padding:10px 12px;gap:12px}
#shell>aside a.active{background:var(--tint);color:var(--accent)}#shell>aside .nav-icon{color:inherit}
#shell>main{margin-left:196px;background:transparent;padding:22px 26px;min-width:0}
:where(h1,h2,h3,h4,label){color:var(--text)}p,.muted{color:var(--muted)}h1{font-size:26px;margin-bottom:14px}a:not(.btn):hover{color:var(--accent)}
button,.btn{background:var(--surface);border:1px solid var(--line);color:var(--text);box-shadow:0 1px 2px #00000005;font-weight:600;border-radius:12px;min-height:42px}
button:hover,.btn:hover{background:var(--tint);color:var(--text);border-color:var(--accent)}button.primary,.btn.primary,button.primary:hover,.btn.primary:hover{background:var(--accent);color:var(--accent-ink);box-shadow:none;border-color:transparent}
button:disabled{cursor:not-allowed;opacity:.5}.error{color:var(--danger)}
input,textarea,select{background:var(--surface);color:var(--text);border:1px solid var(--line);accent-color:var(--accent);border-radius:12px}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}input:focus,textarea:focus,select:focus{outline:2px solid var(--focus-ring);outline-offset:2px}
input::file-selector-button{background:var(--tint);color:var(--text);border:0;border-radius:8px;padding:8px 12px}
.card,.auth,.profile-overview,.album,.service-tile,.dialog-entry{background:var(--surface);color:var(--text);border-color:var(--line);box-shadow:none}
.tabs a{background:var(--surface);color:var(--text);border:1px solid var(--line)}.tabs a[aria-current=page]{background:var(--accent);color:var(--accent-ink)}.tag{background:var(--tint);color:var(--text)}
body:has(.chat) #shell>main{height:calc(100dvh - var(--app-header));padding:12px 18px;display:flex;flex-direction:column;min-height:0;gap:0}
.chat-workspace,.chat-workspace>.chat{background:transparent;border:0;box-shadow:none;border-radius:0;min-height:0;height:auto}
.chat-workspace .messages,.public-conversation .messages{background:transparent;background-image:none;padding:12px 18px;gap:10px;min-height:0}
.chat-workspace .room-rail{background:var(--glass);border:1px solid var(--line);border-radius:14px;padding:12px 8px;width:210px}
.chat-workspace .room-link.selected{background:var(--tint)}.chat-workspace .room-link small{color:var(--muted)}.chat-workspace .rail-title,.chat-workspace .rail-label{display:none}.chat-workspace .room-link b{color:var(--text)}
.chat-workspace.public-conversation .conversation-head{display:none}
.chat-workspace.private-conversation .conversation-head{min-height:42px;padding:6px 12px;background:var(--glass);border-color:var(--line)}
.chat-workspace .message-row,.chat-workspace .message-row.own{gap:9px}
.chat-workspace .message-row>a{flex-basis:40px}.chat-workspace .message-row>a>.avatar,.chat-workspace .message-row>a>.game-avatar{width:40px;height:40px;min-width:40px}
.chat-workspace .message-row .message,.chat-workspace .message-row.own .message{padding:8px 11px 6px;border-radius:4px 14px 14px 14px;max-width:calc(100% - 49px);min-width:0;flex:0 1 auto;background:var(--surface)}
.chat-workspace .message-row.own .message{background:var(--tint)}.chat-workspace .message-author{margin-bottom:2px;gap:6px}.chat-workspace .message-author strong{font-size:13px;color:var(--text)}.chat-workspace .message-body{font-size:15px;line-height:1.45;color:var(--text)}.chat-workspace .message time{margin-top:3px;font-size:10px;color:var(--muted)}
.chat-workspace.public-conversation .message-row .message{flex:0 1 auto;width:auto}
.chat-workspace .message:has(>.message-body.media-only),.chat-workspace .message:has(>.message-body.emoji-only){padding:0;background:transparent}.chat-workspace .message:has(>.message-body.media-only)>.message-author,.chat-workspace .message:has(>.message-body.emoji-only)>.message-author{background:transparent;padding:0}.chat-workspace .message:has(>.message-body.media-only)>time,.chat-workspace .message:has(>.message-body.emoji-only)>time{background:transparent;padding:0}
.chat-workspace .compose{padding:8px;gap:8px;background:var(--glass);border:1px solid var(--line);border-radius:16px}.chat-workspace .compose input{background:var(--surface-alt);border-color:transparent;height:44px}.chat-workspace .compose #emoji{background:transparent;color:var(--accent);border:0}.chat-workspace .compose .primary{width:44px;padding:0;font-size:24px;border-radius:12px}
.emoji-picker,.message-draft{background:var(--surface);color:var(--text);border-color:var(--line)}.emoji-picker button{background:var(--surface-alt);color:var(--text)}.emoji-picker button:hover{background:var(--tint)}
.appearance-controls .theme-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.appearance-controls .theme-options button{background:var(--surface);text-align:left;padding:10px}.theme-options button[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
.appearance-preview{background:transparent;background-image:none;border-color:var(--line);margin-top:20px}.appearance-heading{margin-bottom:20px}.appearance-controls{margin-bottom:20px}
#status{background:var(--text);color:var(--surface);box-shadow:0 8px 30px #0003}.profile-sections button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}
.people-search-row{align-items:center}.people-filter-form input{margin:0}.people-search-row input,.people-search-row button{height:44px}.people-options .people-age{margin-bottom:8px}.people-age input{margin:4px 0 0}.people-options>input{margin:0}.people-checks input{margin:0;flex-shrink:0}.people-filter-error:empty{display:none}
#identity{max-width:48%;min-width:0}#identity a>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#identity .avatar{flex-shrink:0}
@media(max-width:700px){
 :root{--app-header:48px;--app-nav:64px}body>header{padding:0 12px}.brand{font-size:20px}.brand .brand-image{width:29px;height:29px}#identity a{font-size:12px}#identity .avatar{width:28px;height:28px}
 #shell>aside{top:auto;bottom:0;height:calc(var(--app-nav) + env(safe-area-inset-bottom));width:100%;border:0;border-top:1px solid var(--line);padding:4px 6px calc(4px + env(safe-area-inset-bottom));gap:2px;overflow:hidden}
 #shell>aside a{padding:4px 1px;gap:2px;min-height:48px;font-size:9px;flex-direction:column;white-space:normal;line-height:1.15;margin:0;min-width:0;border-radius:12px}#shell>aside .nav-icon{width:24px;height:24px}
 #shell>main{margin:0;padding:12px 10px calc(var(--app-nav) + env(safe-area-inset-bottom) + 16px)}h1{font-size:23px;margin-bottom:12px}
 body:has(.chat) #shell>main{height:calc(100dvh - var(--app-header) - var(--app-nav) - env(safe-area-inset-bottom));padding:6px 8px 6px}
 body:has(.chat) #shell>main>.chat-tabs{display:flex;margin:0 0 6px;gap:5px;flex-shrink:0;flex-wrap:nowrap}
 body:has(.chat) #shell>main>.chat-tabs a{flex:1;text-align:center;padding:8px 5px;min-height:38px;font-size:12px;background:var(--surface);color:var(--text);border-radius:11px;border:1px solid var(--line)}
 body:has(.chat) #shell>main>.chat-tabs a[aria-current=page]{background:var(--accent);color:var(--accent-ink);border-color:transparent}
 .chat-workspace .messages{padding:8px 2px 12px}.chat-workspace .compose{padding:6px}.chat-workspace .compose input{font-size:16px}.chat-workspace .room-rail{display:none}.chat-workspace .message-row .message{max-width:calc(100% - 49px)}
 .profile-sections{margin-bottom:12px;gap:5px}.profile-sections button{padding:8px 4px;min-height:39px;font-size:12px}
}
/* Live video and fullscreen photography keep their purpose-built contrast. */
.lv-stage button.primary{background:#c1adff;color:#211635}.lv-stage .lv-compose button{background:#eee8ff;color:#241b38}.lv-stage .lv-top b,.lv-stage .lv-gate h2{color:#fff}
