:root{--bg: #0b0f14;--surface: #131a22;--surface-2: #1c2530;--line: #263241;--text: #e6edf3;--muted: #8b98a5;--accent: #3ddc97;--accent-ink: #052e1e;--danger: #ff6b6b;--radius: 14px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--surface-2);color:var(--text);padding:10px 14px;border-radius:10px}button.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent;font-weight:650}button.ghost{background:transparent}button:disabled{opacity:.5;cursor:default}input,textarea{font:inherit;font-size:16px;width:100%;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px}a{color:var(--accent)}.app{max-width:720px;margin:0 auto;min-height:100%;display:flex;flex-direction:column}.center{flex:1;display:grid;place-items:center;padding:24px}.card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:grid;gap:14px}.card h1{margin:0;font-size:20px}.card p{margin:0;color:var(--muted)}.error{color:var(--danger);font-size:13px}.topbar{display:flex;align-items:center;gap:10px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:5}.topbar .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex-shrink:0}.dot.online{background:var(--accent)}.dot.offline{background:var(--danger)}.topbar-icon-btn{width:44px;height:44px;min-width:44px;flex-shrink:0;padding:0;border-radius:10px;border:1px solid transparent;background:transparent;display:grid;place-items:center;font-size:19px;line-height:1}.topbar-icon-btn:hover,.topbar-icon-btn:active{background:var(--surface-2)}.menu-wrap{position:relative}.menu-backdrop{position:fixed;inset:0;z-index:9;background:transparent;border:none}.menu{position:absolute;top:calc(100% + 6px);right:0;z-index:10;min-width:200px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px #00000073;overflow:hidden;padding:4px;display:grid;gap:2px}.menu button{display:flex;align-items:center;gap:10px;width:100%;border:none;border-radius:8px;background:transparent;padding:11px 12px;font-size:14px;text-align:left}.menu button:hover,.menu button:active{background:var(--surface-2)}.menu button.danger{color:var(--danger)}.menu button .menu-icon{width:20px;text-align:center;flex-shrink:0}.list{display:flex;flex-direction:column}.row{display:flex;gap:12px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}.row:hover{background:var(--surface)}.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--accent);font-weight:700}.row .sub{color:var(--muted);font-size:13px}.chat{flex:1;display:flex;flex-direction:column;min-height:0}.messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}.bubble{max-width:76%;padding:8px 12px;border-radius:14px;background:var(--surface-2);align-self:flex-start;word-wrap:break-word}.bubble.out{align-self:flex-end;background:var(--accent);color:var(--accent-ink)}.bubble .meta{font-size:11px;opacity:.7;margin-top:3px;display:flex;gap:6px}.composer{display:flex;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.composer input[type=text],.composer>input:not([type]){width:auto;flex:1}.attachment-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;background:transparent;border:none;padding:0;color:inherit;font:inherit}.attachment-card.gone{color:var(--muted);font-style:italic;cursor:default}.attachment-card .sub{font-size:12px;opacity:.8}.banner{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13px;color:var(--muted)}.qr{display:block;width:220px;height:220px;margin:0 auto;background:#fff;border-radius:10px;padding:10px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.safety{letter-spacing:2px;font-family:ui-monospace,monospace;font-size:15px;line-height:2}.call-overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:#0b0f14eb;backdrop-filter:blur(4px);overflow:hidden}.call-card{display:grid;justify-items:center;gap:10px;padding:24px;z-index:1}.call-avatar{width:84px;height:84px;font-size:32px}.call-name{font-size:20px;font-weight:650}.call-status{color:var(--muted)}.call-controls{display:flex;gap:14px;margin-top:18px}.call-video-stage{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}.call-video-stage.mirrored{transform:scaleX(-1)}.call-video-self{position:absolute;right:16px;bottom:calc(108px + env(safe-area-inset-bottom));width:96px;height:128px;border-radius:12px;object-fit:cover;transform:scaleX(-1);border:2px solid rgba(255,255,255,.25);box-shadow:0 4px 16px #0006;z-index:2}.call-video-topbar{position:absolute;top:0;left:0;right:0;z-index:2;display:grid;justify-items:center;gap:4px;padding:calc(24px + env(safe-area-inset-top)) 16px 60px;color:#fff;background:linear-gradient(rgba(0,0,0,.55),transparent)}.call-video-topbar .call-status{color:#ffffffbf}.call-video-controls{position:absolute;bottom:0;left:0;right:0;z-index:2;display:flex;justify-content:center;gap:20px;padding:20px 16px calc(32px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#0009)}.icon-btn{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;border:none;background:var(--surface-2);color:var(--text)}.icon-btn.accept{background:var(--accent);color:var(--accent-ink)}.icon-btn.decline{background:var(--danger);color:#2a0a0a}.icon-btn.ghost{background:#ffffff26;color:#fff}@media(max-width:380px){.topbar{padding-left:12px;padding-right:12px;gap:6px}.center{padding:16px}.card{padding:18px}.bubble{max-width:86%}.messages{padding:12px}.composer{padding-left:12px;padding-right:12px}}
