:root{--bg:#f4f5f7;--surface:#fff;--surface-2:#eef0f3;--border:#dde1e6;--text:#16181d;--muted:#646b76;--accent:#2f6fed;--accent-text:#fff;--danger:#c62f2f;--radius:10px;--sidebar-width:320px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1115;--surface:#171a20;--surface-2:#1f232b;--border:#2b303a;--text:#e7e9ed;--muted:#949ba7;--accent:#5a8dff;--accent-text:#0b0d11;--danger:#ff6b6b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45}a{color:var(--accent)}h1{margin:0 0 .5rem;font-size:1.4rem}input,button,textarea{font:inherit;color:inherit}.muted{color:var(--muted)}.auth{place-items:center;min-height:100%;padding:16px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:380px;padding:28px 24px}.auth-switch{margin:1.25rem 0 0;font-size:.9rem}.field{flex-direction:column;gap:4px;margin-top:16px;display:flex}.field>span{font-size:.9rem;font-weight:600}.field input{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:9px 12px}.field input:focus{border-color:var(--accent);outline:none}.field small{font-size:.8rem}.form-error{color:var(--danger);margin:14px 0 0;font-size:.9rem}.btn-primary{background:var(--accent);width:100%;color:var(--accent-text);cursor:pointer;border:none;border-radius:8px;margin-top:20px;padding:10px 14px;font-weight:600}.btn-primary:disabled{opacity:.6;cursor:default}.chat-shell{grid-template-columns:var(--sidebar-width) 1fr;height:100%;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.sidebar-header{justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.brand{font-size:1.1rem;font-weight:700}.btn{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:6px 10px;font-size:.85rem}.btn:disabled{opacity:.6;cursor:default}.btn-accent{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.row-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.profile{align-items:center;gap:8px;padding:0 16px 12px;display:flex}.profile-names{flex-direction:column;flex:1;min-width:0;display:flex}.profile-display,.profile-username{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.profile-display{font-weight:600}.profile-username{font-size:.8rem}.profile-edit{padding:0 16px 12px}.profile-edit .field{margin-top:0}.search{background:var(--surface-2);border:1px solid #0000;border-radius:8px;margin:0 16px 12px;padding:8px 12px}.search:focus{border-color:var(--accent);outline:none}.sidebar-empty{padding:0 16px;font-size:.9rem}.search-results{border-bottom:1px solid var(--border);margin-bottom:8px;padding-bottom:8px}.list-item{text-align:left;background:0 0;border:none;flex-direction:column;width:100%;padding:8px 16px;display:flex}.list-title,.list-subtitle{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.list-title{font-weight:600}.list-subtitle{font-size:.8rem}.panel{flex-direction:column;min-width:0;min-height:0;display:flex}.panel-empty{text-align:center;flex:1;place-items:center;padding:16px;display:grid}.conversation-list{flex:1;overflow-y:auto}.list-item{color:inherit;cursor:pointer;font:inherit;text-decoration:none}.list-item:hover{background:var(--surface-2)}.list-item.active{background:var(--surface-2);box-shadow:inset 3px 0 0 var(--accent)}.list-item.unread .list-title{font-weight:700}.list-item.unread .list-subtitle{color:var(--text)}.online-dot{vertical-align:middle;background:#2fb36b;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.unread-dot{background:var(--accent);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-left:6px;display:inline-block}.conversation{flex-direction:column;height:100%;min-height:0;display:flex}.conversation-header{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:12px 16px;display:flex}.conversation-names{flex-direction:column;min-width:0;display:flex}.back-link{color:inherit;padding:0 6px 0 0;font-size:1.2rem;text-decoration:none;display:none}.message-list{flex-direction:column;flex:1;gap:6px;padding:16px;display:flex;overflow-y:auto}.load-older{align-self:center;margin-bottom:8px}.empty-chat{margin:auto}.message{flex-direction:column;align-items:flex-start;max-width:min(75%,560px);display:flex}.message.mine{align-self:flex-end;align-items:flex-end}.message-row{align-items:center;gap:6px;max-width:100%;display:flex}.message.mine .message-row{flex-direction:row-reverse}.message-actions{opacity:0;pointer-events:none;gap:4px;transition:opacity .1s;display:flex}.message:hover .message-actions,.message:focus-within .message-actions,.message.active .message-actions{opacity:1;pointer-events:auto}.action{background:var(--surface);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:.75rem}.action:hover{background:var(--surface-2)}.reaction-picker{background:var(--surface);border:1px solid var(--border);border-radius:999px;gap:2px;margin-top:4px;padding:4px;display:flex}.reaction-picker button{cursor:pointer;background:0 0;border:none;border-radius:50%;padding:4px;font-size:1.2rem;line-height:1}.reaction-picker button:hover{background:var(--surface-2)}.reactions{flex-wrap:wrap;gap:4px;margin-top:3px;display:flex}.reaction{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:999px;padding:1px 8px;font-size:.8rem}.reaction.mine{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 15%, var(--surface))}.quote{width:100%;color:inherit;text-align:left;cursor:pointer;background:#00000014;border:none;border-left:3px solid;border-radius:4px;flex-direction:column;align-items:flex-start;margin:0 0 6px;padding:4px 8px;font-size:.8rem;display:flex}.quote:disabled{cursor:default}.quote-name{font-weight:600}.quote-text{opacity:.85;overflow-wrap:anywhere}.message.flash .bubble{outline:2px solid var(--accent);outline-offset:2px}.composer-bar-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.composer-bar{background:var(--surface-2);border-left:3px solid var(--accent);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;padding:6px 10px;font-size:.85rem;display:flex}.message-sender{color:var(--muted);margin:4px 0 2px 10px;font-size:.75rem;font-weight:600}.bubble{background:var(--surface);border:1px solid var(--border);border-radius:14px;max-width:100%;padding:8px 12px}.message.mine .bubble{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.message-text{white-space:pre-wrap;overflow-wrap:anywhere}.seen-label{align-self:flex-end;margin:0 6px;font-size:.72rem}.message-time{margin:2px 6px 0;font-size:.7rem}.typing-line{min-height:1.2em;margin:0;padding:0 16px 2px;font-size:.78rem;font-style:italic}.composer{background:var(--surface);border-top:1px solid var(--border);padding:10px 16px 14px}.composer-error{margin:0 0 8px}.composer-row{align-items:flex-end;gap:8px;display:flex}.composer textarea{resize:none;field-sizing:content;background:var(--surface-2);border:1px solid var(--border);border-radius:18px;flex:1;max-height:140px;padding:9px 12px}.composer textarea:focus{border-color:var(--accent);outline:none}.composer .btn{border-radius:18px;padding:9px 14px}.bubble-media{padding:4px}.message-image{object-fit:cover;border-radius:10px;max-width:min(280px,100%);max-height:320px;display:block}.image-placeholder{text-align:center;width:200px;height:140px;font-size:.8rem;line-height:140px;display:block}.file-row{color:inherit;align-items:center;gap:10px;min-width:180px;text-decoration:none;display:flex}.file-row.pending{pointer-events:none;opacity:.7}.file-icon{font-size:1.5rem}.file-meta{flex-direction:column;min-width:0;display:flex}.file-name{overflow-wrap:anywhere;font-weight:600}.file-size{opacity:.8;font-size:.75rem}.composer-icon{font-size:1.1rem;line-height:1}.recording-bar{flex:1;align-items:center;gap:10px;display:flex}.recording-dot{background:var(--danger);border-radius:50%;width:10px;height:10px;animation:1s ease-in-out infinite alternate pulse}.recording-time{font-variant-numeric:tabular-nums;flex:1}@keyframes pulse{to{opacity:.3}}@media (prefers-reduced-motion:reduce){.recording-dot{animation:none}}.voice{align-items:center;gap:8px;display:flex}.voice-player{width:min(220px,60vw);height:36px}.voice-length{font-variant-numeric:tabular-nums;font-size:.8rem}.dialog{background:var(--surface);width:min(440px,100vw - 32px);max-height:calc(100vh - 32px);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.dialog::backdrop{background:#00000073}.dialog h2,.group-info h2{margin:0;font-size:1.1rem}.picker{flex-direction:column;gap:6px;display:flex}.picker-search{margin:0}.picker-results{border:1px solid var(--border);border-radius:8px;max-height:220px;overflow-y:auto}.picker-results p{margin:8px 12px}.chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chip{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;align-items:center;gap:4px;padding:3px 4px 3px 10px;font-size:.85rem;display:inline-flex}.chip button{cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1rem;line-height:1}.header-action{margin-left:auto}.conversation{position:relative}.group-info{z-index:2;background:var(--surface);border-left:1px solid var(--border);flex-direction:column;gap:12px;width:min(360px,100%);padding:16px;display:flex;position:absolute;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-8px 0 24px #00000014}.group-info-header{justify-content:space-between;align-items:center;display:flex}.group-count{margin:0;font-size:.85rem}.member-list{margin:0;padding:0;list-style:none}.member{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:8px 0;display:flex}.member-names{flex-direction:column;flex:1;min-width:0;display:flex}.member-actions{flex-shrink:0;gap:6px;display:flex}.add-members{margin-top:0}.btn-danger{color:var(--danger);border-color:var(--danger);background:0 0;align-self:flex-start}.skeleton{background:var(--surface-2);border-radius:12px;animation:1.2s ease-in-out infinite alternate skeleton-pulse;display:block}.skeleton-title{width:140px;height:18px}.skeleton-bubble{width:min(55%,320px);height:34px}.skeleton-bubble.mine{align-self:flex-end;width:min(40%,240px)}.skeleton-input{border-radius:18px;height:38px}@keyframes skeleton-pulse{to{opacity:.5}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.admin{max-width:960px;margin:0 auto;padding:24px 16px}@media (max-width:720px){.chat-shell{grid-template-columns:1fr}.sidebar{border-right:none}:is(.chat-shell:has(.conversation) .sidebar,.chat-shell:has(.panel-empty) .panel){display:none}.back-link{display:inline}.message{max-width:85%}}
