.profile-photo { position: relative; }
.gallery-open { position:absolute;top:38px;left:12px;width:44px;height:44px;border:1px solid #ffffff55;border-radius:50%;background:#100d16aa;color:white;display:grid;place-items:center;z-index:4; }
.profile-photo .gallery-open { top:12px; }
.photo-viewer { position:fixed;inset:0;z-index:40;background:#050407;display:grid;place-items:center;touch-action:pan-y; }
.photo-viewer > img:not(.photo-flight) { width:100%;height:100%;object-fit:contain;min-height:0; }
.photo-viewer button { position:absolute;width:44px;height:44px;display:grid;place-items:center;border:1px solid #65546d;background:#17101ee6;color:white;border-radius:50%; }
.photo-viewer button:disabled { opacity:.35; }
.viewer-close { right:16px;top:max(16px,env(safe-area-inset-top)); }
.viewer-previous { left:12px;top:50%; }
.viewer-next { right:12px;top:50%; }
.gallery-count { position:absolute;left:20px;top:max(24px,env(safe-area-inset-top));background:#17101e;padding:6px 12px;border-radius:8px; }
.gallery-fallback { position:absolute;max-width:70%;text-align:center; }
.photo-viewer .gallery-retry { top:60%;width:auto;padding:0 20px;border-radius:8px; }
.photo-flight { position:fixed;object-fit:cover;pointer-events:none;transform-origin:center; }
.conversation-open #content { height:calc(100dvh - 190px);min-height:300px;display:flex;flex-direction:column;gap:8px; }
.conversation-header { display:flex;align-items:center;gap:8px;flex-shrink:0; }
.conversation-header h1 { font-size:20px;margin:0;flex:1;min-width:0;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden; }
.conversation-header .avatar { width:38px;height:38px;flex-shrink:0; }
.conversation-header .row-action { width:38px;height:38px;flex-shrink:0; }
.conversation-header { flex-wrap:wrap; }
.conversation-header h1 { flex:1 1 80px; }
.message-react { display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;padding:0;border:0;border-radius:4px;color:#f7d4ea;background:transparent; }
.message-react svg { width:17px;height:17px; }
.message-reactions { display:flex;flex-wrap:wrap;gap:5px;margin-top:6px; }
.message-reaction { min-height:30px;border:1px solid #80617b;border-radius:8px;padding:3px 8px;background:#19121d;color:#fff;font-size:14px; }
.message-reaction[aria-pressed=true] { border-color:#ff7bc9;background:#5c1941; }
.reaction-options { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0; }
.reaction-choice { min-width:0;height:56px;font-size:27px;background:#211625;border:1px solid #64495e;border-radius:8px; }
.reaction-choice[aria-pressed=true] { border-color:#ff7bc9; }
.background-options { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 10px;margin:20px 0; }
.background-choice { display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;border:0;background:transparent;color:white;font-size:12px;overflow-wrap:anywhere; }
.background-swatch { width:48px;height:48px;border-radius:50%;border:2px solid #7e6b81;display:grid;place-items:center;color:#ff2daa;flex-shrink:0; }
.background-choice[aria-pressed=true] .background-swatch { outline:2px solid #ff7bc9;outline-offset:3px; }
.message-log[data-background] { border-radius:8px; }
.message-log[data-background=default],.background-swatch[data-background=default] { background-color:#080609; }
.message-log[data-background=rose],.background-swatch[data-background=rose] { background-color:#23101b; }
.message-log[data-background=forest],.background-swatch[data-background=forest] { background-color:#10251f; }
.message-log[data-background=blue],.background-swatch[data-background=blue] { background-color:#112132; }
.message-log[data-background=graphite],.background-swatch[data-background=graphite] { background-color:#202024; }
.message-log[data-background=light],.background-swatch[data-background=light] { background-color:#edeaf1; }
.message-log { overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:80px;padding:10px 4px;display:flex;flex-direction:column;gap:9px; }
.message-bubble { align-self:flex-start;max-width:86%;padding:10px 12px;background:#221b29;border:1px solid #43354b;border-radius:8px;flex-shrink:0; }
.message-bubble.own { align-self:flex-end;background:#702554;border-color:#b84187; }
.message-bubble p { margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px; }
.message-bubble time { display:block;font-size:11px;color:#dbcbdf;margin-top:6px;text-align:right; }
.message-footer { display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;margin-top:4px; }
.message-footer time { margin:0; }
.message-edited { font-size:10px;color:#e0c4d7; }
.message-edit { display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;padding:0;border:0;border-radius:4px;color:#f7d4ea;background:transparent; }
.message-edit svg { width:16px;height:16px; }
.message-edit:hover,.message-edit:focus-visible { background:#ffffff18; }
.profile-avatar { display:block;flex-shrink:0;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer; }
.profile-avatar:focus-visible { outline:2px solid #ff58c0;outline-offset:3px; }
.community-sender .avatar { width:32px;height:32px;font-size:14px; }
.message-editor textarea { min-height:88px;max-height:35vh; }
.member-profile-photos { margin-top:14px; }
.member-profile-photos > img { display:block;width:100%;height:320px;max-height:40vh;object-fit:contain;background:#080609;border-radius:8px; }
.member-photo-controls { display:flex;justify-content:space-between;align-items:center;margin-top:6px;gap:8px; }
.member-profile-bio { white-space:pre-wrap;overflow-wrap:anywhere; }
.member-profile .tool-heading h2 { overflow-wrap:anywhere; }
.message-form { display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;flex-shrink:0;padding-bottom:8px; }
.chat-media-controls,.chat-emoji,.chat-attachment-preview { flex:0 0 100%;min-width:0;display:flex;gap:8px;align-items:center; }
.chat-media-controls .row-action { width:40px;height:40px; }
.chat-emoji { flex-wrap:wrap; }
.chat-emoji button { width:40px;height:40px;font-size:22px; }
.chat-attachment-preview span { flex:1;overflow-wrap:anywhere;font-size:13px; }
.chat-attachment-preview img { width:64px;height:64px;object-fit:contain;flex-shrink:0; }
.chat-media-status { flex:0 0 100%;margin:0;font-size:13px;color:var(--muted); }
.chat-media-status:empty { display:none; }
.chat-photo-open { display:block;position:relative;max-width:100%;padding:0;border:0;background:transparent;color:white;cursor:zoom-in; }
.chat-photo-open svg { position:absolute;inset-inline-end:8px;bottom:8px;width:22px;height:22px;padding:2px;border-radius:4px;background:#100b12aa; }
.gif-picker { width:min(480px,calc(100% - 24px)); }
.gif-picker .settings-link { width:100%; }
.gif-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0; }
.gif-choice { display:grid;place-items:center;min-width:0;aspect-ratio:1;border:1px solid #60405c;border-radius:8px;background:#211625;color:white;padding:8px; }
.gif-choice:hover,.gif-choice:focus-visible { border-color:#ff58c0; }
.gif-choice img { width:100%;height:100%;max-height:120px;object-fit:contain; }
.gif-attribution { display:flex;flex-wrap:wrap;gap:4px 12px;font-size:10px;line-height:1.5;margin-top:8px; }
.gif-attribution a { color:#c7bdcc; }
.chat-media { display:block;max-width:100%;width:280px;height:210px;object-fit:contain;border-radius:8px; }
.chat-sticker { width:160px;height:160px; }
.message-form textarea { flex:1;min-width:0;resize:none;max-height:140px;background:#16121c;border:1px solid #66486c;color:white;border-radius:8px;padding:10px;font-size:16px; }
.send-message { width:48px;height:48px;border:0;border-radius:50%;background:#e42195;color:white;display:grid;place-items:center;flex-shrink:0; }
.send-message:disabled { opacity:.5; }
.chat-status { font-size:13px;color:#d9b5cf;margin:0;flex-shrink:0; }
.chat-status:empty { display:none; }
.voice-record { width:40px;height:48px;flex:0 0 40px;display:grid;place-items:center;background:transparent;border:1px solid #704064;color:#fbc4e9;border-radius:8px; }
.voice-record svg { width:21px;height:21px; }
.chat-voice { display:block;width:280px;max-width:100%;height:44px; }
.message-bubble.voice-message { width:310px; }
.message-bubble .chat-media-error { font-size:12px;color:#f3b7d5;margin:6px 0; }
.chat-attachment-preview:has(audio) { flex-wrap:wrap; }
.chat-attachment-preview audio { flex:1 1 190px;min-width:0; }
.voice-actions { display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0; }
.voice-clock { font-size:28px;font-variant-numeric:tabular-nums;min-width:80px;text-align:center; }
.voice-stop { display:grid;place-items:center;width:52px;height:52px;flex-shrink:0;border:1px solid #ff58ba;border-radius:8px;background:#9b145a;color:white; }
.voice-status { min-height:42px;overflow-wrap:anywhere; }
.vibe-heading { display:flex;align-items:center;justify-content:space-between;gap:12px; }
.vibe-heading h1 { margin:12px 0 18px; }
.vibe-general { display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:14px;background:#241025;color:white;border:1px solid #793466;border-radius:8px;text-align:start; }
.vibe-general strong { flex:1;overflow-wrap:anywhere; }
.vibe-general svg { width:24px;height:24px;flex-shrink:0; }
.rooms-heading { font-size:19px;margin:24px 0 12px; }
.room-filters { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-bottom:14px; }
.room-filters select,.room-editor select,.room-editor input { min-width:0;width:100%;background:#17101c;border:1px solid #704064;border-radius:8px;color:white;padding:10px;font-size:14px; }
.room-editor label { display:block;margin:14px 0;font-size:14px; }
.room-editor input,.room-editor select,.room-editor textarea { display:block;margin-top:6px; }
.room-row { display:flex;gap:4px;align-items:center;border-bottom:1px solid #3b293f;min-width:0; }
.room-open { display:flex;align-items:center;gap:12px;flex:1;min-width:0;padding:14px 0;border:0;background:transparent;color:white;text-align:start; }
.room-symbol { width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:8px;background:#26202d;color:#ff9cdb; }
.room-open > svg { flex-shrink:0;width:18px;height:18px; }
.room-copy { flex:1;min-width:0;overflow-wrap:anywhere; }
.room-copy h3 { margin:0 0 6px;font-size:16px; }
.room-copy p { margin:0 0 6px;font-size:13px;color:#d6c8da;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden; }
.room-copy small { display:block;font-size:11px;color:var(--muted);line-height:1.5; }
.room-row > .row-action { flex-shrink:0; }
.room-status { color:var(--muted);font-size:14px; }
.room-profile-like { margin:12px auto;display:grid;place-items:center; }
@media(max-width:350px) { .room-filters { grid-template-columns:1fr; }.room-symbol { width:34px;height:34px;flex-basis:34px; }.voice-record { width:36px;flex-basis:36px; } }
.history-button,.new-messages { border:1px solid #624069;background:#18101c;color:#fcaee0;padding:8px;border-radius:8px;flex-shrink:0; }
