:root{color-scheme:dark;font-family:'Segoe UI',sans-serif;background:#090f21;color:#ecedf6}*{box-sizing:border-box}body{margin:0}header{height:94px;display:flex;align-items:center;gap:15px;padding:16px 5%;border-bottom:1px solid #28324c;background:#10192d}header img{width:60px;border-radius:15px}h1{font-size:24px;margin:0;color:#e7cf91}small,p{color:#a9b4cc}header #who{margin-left:auto}main{max-width:1280px;margin:auto;padding:30px}button,input{font:inherit;border:1px solid #35425e;border-radius:9px;padding:11px 15px}button{background:#26344d;color:#f5e6bb;cursor:pointer}button:hover{background:#3b4b68}input{background:#0e172a;color:white;min-width:0}input[type=checkbox]{accent-color:#dcc088}label{display:block;margin:12px 0}label input:not([type=checkbox]){display:block;width:100%;margin-top:8px}#auth{max-width:420px;margin:10px auto;text-align:center}#auth form{text-align:left}.splash{width:240px;height:190px;object-fit:contain}form{display:flex;gap:8px;margin:14px 0}#login{display:block}#login button{margin:8px 4px 8px 0}#workspace{display:grid;grid-template-columns:280px 1fr;gap:25px}aside{border-right:1px solid #28324c;padding-right:20px}aside form{flex-wrap:wrap}aside input{width:100%}#rooms button{width:100%;text-align:left;margin-bottom:8px}article{min-width:0}#messages{height:50vh;overflow-y:auto;padding:15px 0;display:flex;flex-direction:column;gap:12px}.bubble{max-width:85%;padding:12px 16px;border-radius:14px;background:#1b2840;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.mine{align-self:flex-end;background:#35415b}.bubble small{display:block;font-size:11px;margin-bottom:5px}#send input{flex:1}#settings{display:flex;gap:16px;align-items:center;flex-wrap:wrap}#status{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#3b3346;border-radius:9px;padding:12px;display:none;max-width:90vw}dialog{background:#121e33;color:white;border:1px solid #52607c;border-radius:15px;width:540px;max-width:95vw}dialog .member{padding:10px;border-bottom:1px solid #35425e}dialog button{margin:4px}[hidden]{display:none!important}@media(max-width:700px){main{padding:16px}header{padding:12px}header small{display:none}#workspace{grid-template-columns:1fr}aside{border-right:0;border-bottom:1px solid #28324c;padding-bottom:15px}#messages{height:45vh}#rooms{display:flex;overflow:auto;gap:8px}#rooms button{width:auto;white-space:nowrap}header button{font-size:12px;padding:8px}}
@media(max-width:700px){#workspace{grid-template-columns:minmax(0,1fr)}aside{min-width:0}aside form{flex-wrap:nowrap}aside form input{flex:1;width:0}aside form button{white-space:nowrap}header h1{font-size:20px}header #who{font-size:12px}}
@media(max-width:700px){header{height:auto;min-height:94px;flex-wrap:wrap;gap:8px}header img{width:44px}header #access{order:5;font-size:12px;padding:8px}#accessdialog form{flex-wrap:wrap}#accessdialog input{max-width:100%}}
#voicepanel{margin:16px 0;padding:14px;background:#15263a;border:1px solid #3c5b68;border-radius:12px}#voicestatus{display:block;color:#b4d9c9;margin-top:10px}#voiceaudio audio{width:220px;max-width:100%;height:32px;margin:8px}
.voice-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.voice-heading h3{margin:0;color:#cde8db}#voicecount{font-size:12px;color:#b4d9c9}#voicemembers{list-style:none;padding:0;margin:14px 0;display:flex;flex-wrap:wrap;gap:8px}.voice-member{display:flex;flex-direction:column;gap:4px;padding:10px 14px;background:#1c3646;border:1px solid #497969;border-radius:10px;max-width:100%;overflow-wrap:anywhere}.voice-member small{color:#96d6b6}.voice-member.muted{border-color:#536072;background:#222f40}.voice-member.muted small{color:#b5baca}.voice-empty{color:#a9b4cc;font-size:13px;padding:6px 0}#voicepanel button{margin:3px}button:disabled{opacity:.5;cursor:default}
@media(max-width:700px){aside #create,aside #join{display:grid;grid-template-columns:minmax(0,1fr) auto}aside #create input,aside #join input{grid-column:1/-1;width:100%}aside #create button,aside #join button{grid-column:2}#passwordform{flex-wrap:wrap}#passwordform label,#passwordform input{width:100%}}
#newinvite{padding:12px;border:1px solid #b6a067;border-radius:10px;margin:12px 0}#generatedkey{width:100%;font-family:monospace;font-size:14px}#admission{padding:20px;background:#14273a;border-radius:12px}#accessdialog #createinvite{flex-wrap:wrap}#accessdialog #createinvite input{flex:1;min-width:140px}
:root{--chat-bg:#101b31;--chat-text:#f1f3fa;--chat-muted:#abbcd2;--chat-bubble:#21314a;--chat-mine:#35415b}[data-chat-theme=forest]{--chat-bg:#102a26;--chat-bubble:#204239;--chat-mine:#315d4b}[data-chat-theme=plum]{--chat-bg:#2b1935;--chat-bubble:#422b50;--chat-mine:#624370}[data-chat-theme=slate]{--chat-bg:#23272f;--chat-bubble:#383e49;--chat-mine:#4b5664}[data-chat-theme=cream]{--chat-bg:#f3ecde;--chat-bubble:#fffaf1;--chat-mine:#dfd2b5;--chat-text:#29271f;--chat-muted:#615c50}#chatcanvas{position:relative;isolation:isolate;overflow:hidden;background:var(--chat-bg);border:1px solid #45546b;border-radius:14px}#chatcanvas:before{content:"";position:absolute;inset:0;background:url('/chat-emblem.png') center/85% auto no-repeat;opacity:.1;pointer-events:none;z-index:-1}#messages{padding:16px;position:relative}#messages .bubble{background:var(--chat-bubble);color:var(--chat-text)}#messages .bubble.mine{background:var(--chat-mine)}#messages .bubble small{color:var(--chat-muted)}select{padding:8px;border-radius:8px;background:#19263a;color:#edf0f8;border:1px solid #495d7a}.theme-control{font-size:13px}.attachment-photo{display:block;max-width:100%;width:260px;max-height:240px;object-fit:contain;margin:10px 0;border-radius:10px}.attachment-download{display:block;color:inherit;text-decoration:underline;margin-top:8px;overflow-wrap:anywhere}#attach{align-items:center;flex-wrap:wrap}#attach input{max-width:230px;font-size:12px}#attach label{margin:0;font-size:12px}#attach small{font-size:11px}@media(max-width:700px){header #applock{font-size:12px;padding:8px}#attach input{max-width:100%}.file-label{max-width:100%}#chatcanvas:before{background-size:110% auto}}

#chatcanvas:before{background-size:contain}@media(max-width:700px){#chatcanvas:before{background-size:contain}}
#roomgate{padding:28px;border:1px solid #6d7591;background:#172137;border-radius:14px;margin:20px 0}#roomgate h3{color:#e8d49a;margin-top:0}#unlockroom{flex-wrap:wrap}#unlockpassword{max-width:100%}#lockroom{border-color:#967f54;color:#ffe3a3}
#accountnameform,#accountrestore{flex-wrap:wrap}#accountnameform label,#accountrestore label{flex:1 1 100%}#recoverykey{width:100%;font-family:monospace}#accountdialog details{margin:18px 0}#accountdialog summary{cursor:pointer}header #who{max-width:35vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}header button{flex-shrink:0}

#enrollform,#safetyform{display:block}#enrollment{padding:18px;background:#14273a;border-radius:12px}#enrollment small{display:block;margin-top:16px}#adminlink{color:#c8b887;font-size:13px}#safetycontrols{padding:14px;border:1px solid #52607c;border-radius:10px}#safetystats{font-size:13px;line-height:1.6}#invitelist .member{overflow-wrap:anywhere}
.retention-notice{font-size:.82rem;opacity:.8;margin:10px 0;}

.profile-avatar{display:inline-flex;position:relative;vertical-align:middle;flex:0 0 34px;width:34px;height:34px;border-radius:50%;overflow:hidden;background:#475b76;color:#fff;align-items:center;justify-content:center;font-size:15px;margin-right:8px;isolation:isolate}.profile-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#475b76}.bubble>.profile-avatar{float:left;margin-bottom:6px}.bubble>.message-text{display:block;clear:both;overflow-wrap:anywhere}.profile-editor{padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid #52607c}.profile-editor #myphoto .profile-avatar{width:88px;height:88px;font-size:32px}.profile-editor canvas{width:120px;height:120px;border-radius:12px;margin:12px 0}.profile-editor small{display:block;line-height:1.6;color:#bbc6d7}#profileform{display:flex;flex-wrap:wrap;align-items:end}#profileform label{width:100%}#profilefile{width:100%}#accountdialog{max-height:85vh;overflow-y:auto}.voice-member .profile-avatar{flex-shrink:0}#invitelist .member .profile-avatar{float:left}
