:root{--bg:#0b141a;--panel:#111b21;--panel2:#202c33;--line:#2a3942;--text:#e9edef;--muted:#8696a0;--green:#25d366;--green2:#00a884;--mine:#005c4b;--danger:#ef5350;--white:#fff}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:220px 1fr}.side-nav{background:#0f1a20;border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:20px}.brand{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:800}.brand img{width:38px;height:38px}.side-nav nav{display:grid;gap:7px}.side-nav nav a,.secondary{color:#cbd5da;text-decoration:none;padding:11px 12px;border-radius:10px}.side-nav nav a.active,.side-nav nav a:hover{background:var(--panel2);color:#fff}.nav-user{margin-top:auto;display:grid;gap:4px}.nav-user small{color:var(--muted)}.nav-user button{border:0;background:none;color:#ff8a80;padding:6px 0;text-align:left}.main-content{min-width:0}.messenger{height:100vh;display:grid;grid-template-columns:minmax(270px,32%) 1fr}.conversation-pane{border-right:1px solid var(--line);background:var(--panel);overflow:hidden;display:flex;flex-direction:column}.conversation-pane header,.chat-header{height:66px;padding:10px 14px;background:var(--panel2);display:flex;align-items:center;justify-content:space-between}.conversation-pane header h1{font-size:20px;margin:0}.conversation-pane header small{color:var(--muted)}.icon-button,.voice,.send,.attach,.mobile-back{border:0;border-radius:999px;background:transparent;color:var(--text);min-width:42px;height:42px;display:grid;place-items:center}.icon-button:hover,.voice:hover,.attach:hover,.mobile-back:hover{background:#2a3942}.search{margin:10px 12px;border:0;border-radius:9px;background:var(--panel2);color:var(--text);padding:11px 13px;outline:none}.conversation-list{overflow:auto;flex:1}.conversation-item{width:100%;border:0;border-bottom:1px solid #1d2a30;background:transparent;color:var(--text);padding:11px 12px;display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:center;text-align:left}.conversation-item:hover,.conversation-item.active{background:#202c33}.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#00a884,#25d366);color:#06130e;font-weight:900}.conversation-text{min-width:0;display:grid;gap:4px}.conversation-text strong,.conversation-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-text small,.conversation-meta{color:var(--muted);font-size:12px}.conversation-meta em{display:grid;place-items:center;background:var(--green);color:#062b1f;border-radius:999px;min-width:20px;height:20px;padding:0 5px;font-style:normal;font-weight:800}.chat-pane{display:grid;grid-template-rows:66px 1fr auto auto;background:#0b141a;min-width:0;position:relative}.chat-pane:before{content:"";position:absolute;inset:66px 0 0;background-image:radial-gradient(#1b2a31 1px,transparent 1px);background-size:18px 18px;opacity:.28;pointer-events:none}.chat-header{z-index:2}.chat-header>div{display:flex;align-items:center;gap:10px}.chat-header strong,.chat-header small{display:block}.chat-header small{color:var(--muted)}.chat-messages{z-index:1;overflow:auto;padding:18px 5% 12px;display:flex;flex-direction:column;gap:6px}.empty-chat{margin:auto;color:var(--muted);background:#111b21;padding:12px 16px;border-radius:12px}.msg{max-width:min(72%,720px);background:#202c33;border-radius:8px;padding:7px 9px;align-self:flex-start;box-shadow:0 1px 1px #0005;position:relative}.msg.mine{align-self:flex-end;background:var(--mine)}.msg .sender{color:#53bdeb;font-size:12px;font-weight:800}.msg p{margin:3px 0 5px;white-space:pre-wrap;overflow-wrap:anywhere}.msg footer{display:flex;justify-content:flex-end;gap:6px;color:#aebac1;font-size:11px;align-items:center}.msg .edited{font-style:italic}.read.read{color:#53bdeb}.reply-quote{border-left:3px solid var(--green);background:#0002;border-radius:5px;padding:5px 7px;margin-bottom:5px;font-size:12px;max-width:100%;overflow:hidden}.reply-quote strong,.reply-quote span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachments{display:grid;gap:6px;margin-top:5px}.attachment{display:flex;align-items:center;gap:8px;background:#0002;border-radius:7px;padding:7px;color:var(--text);text-decoration:none}.attachment audio,.attachment video{max-width:100%;width:320px}.attachment img{max-width:320px;max-height:260px;border-radius:7px;object-fit:cover}.attachment .file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-actions{position:absolute;right:4px;top:4px;border:0;background:#0004;color:#fff;border-radius:50%;opacity:0}.msg:hover .msg-actions{opacity:1}.composer{z-index:2;display:grid;grid-template-columns:auto auto 1fr auto;align-items:end;gap:6px;background:var(--panel2);padding:8px 12px env(safe-area-inset-bottom)}.attach{position:relative}.attach input{position:absolute;opacity:0;width:1px;height:1px}.composer textarea{resize:none;max-height:130px;min-height:42px;border:0;border-radius:20px;background:#2a3942;color:var(--text);padding:11px 14px;outline:none}.send{background:var(--green2);color:#fff}.voice.recording{background:var(--danger);animation:pulse 1s infinite}@keyframes pulse{50%{transform:scale(1.08)}}.reply-bar{z-index:2;background:#18252c;border-left:4px solid var(--green);padding:8px 12px;margin:0;display:flex;justify-content:space-between;align-items:center}.reply-bar button{border:0;background:none;color:#fff;font-size:22px}.dialog{position:fixed;inset:0;background:#0009;z-index:20;display:grid;place-items:center;padding:16px}.dialog[hidden],.message-menu[hidden]{display:none}.dialog-card{width:min(520px,100%);max-height:90vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px}.dialog-card header{display:flex;justify-content:space-between;align-items:center}.dialog-card h2{margin:0}.dialog-card header button{border:0;background:none;color:#fff;font-size:26px}.dialog-card form,.panel form{display:grid;gap:12px;margin-top:15px}label{display:grid;gap:6px;color:#cbd5da}input,select,textarea{background:#202c33;color:#fff;border:1px solid #33444e;border-radius:9px;padding:10px 11px}.primary,.danger,.secondary{border:0;border-radius:9px;padding:11px 14px;font-weight:700}.primary{background:var(--green2);color:#fff}.danger{background:#8c2b2b;color:#fff}.tabs{display:flex;gap:8px;margin:10px 0}.tabs button{flex:1;padding:9px;border:1px solid var(--line);background:transparent;color:#fff;border-radius:8px}.tabs button.active{background:#203a31;border-color:var(--green)}.member-picker{display:grid;gap:5px;max-height:250px;overflow:auto}.member-picker label{display:flex;gap:8px;align-items:center;padding:7px}.message-menu{position:fixed;z-index:30;background:#202c33;border:1px solid #40515a;border-radius:9px;box-shadow:0 8px 30px #0008;overflow:hidden}.message-menu button{display:block;width:100%;padding:10px 15px;background:none;color:#fff;border:0;text-align:left}.message-menu button:hover{background:#2a3942}.danger-text{color:#ff8a80!important}.panel{margin:24px;max-width:1100px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px}.panel.narrow{max-width:620px}.panel h1{margin-top:0}.grid-form{grid-template-columns:repeat(2,minmax(0,1fr))}.table-wrap{overflow:auto;margin-top:22px}table{width:100%;border-collapse:collapse}th,td{padding:11px;border-bottom:1px solid var(--line);text-align:left}td small{display:block;color:var(--muted)}.hint{color:var(--muted);font-size:13px}.secret{display:block;padding:12px;background:#050a0d;border-radius:8px;overflow-wrap:anywhere}.auth-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 30% 20%,#173a32,#0b141a 55%)}.auth-card{width:min(420px,calc(100% - 32px));background:#111b21;border:1px solid var(--line);border-radius:18px;padding:28px}.auth-logo{width:72px;height:72px}.auth-card h1{margin-bottom:4px}.auth-card p{color:var(--muted)}.auth-card form{display:grid;gap:14px;margin-top:20px}.toast-stack{position:fixed;right:16px;top:16px;z-index:99;display:grid;gap:8px}.toast{background:#202c33;border:1px solid #40515a;color:#fff;padding:11px 14px;border-radius:10px;box-shadow:0 8px 30px #0008;max-width:360px}.toast.error{border-color:#a33}.mobile-back{display:none}.group-tools{display:flex;gap:6px;align-items:center}.group-tools button{border:0;background:#2a3942;color:#fff;border-radius:8px;padding:7px 9px}
@media(max-width:820px){.app-shell{grid-template-columns:1fr}.side-nav{display:none}.messenger{grid-template-columns:1fr}.chat-pane{display:none}.messenger.chat-open .conversation-pane{display:none}.messenger.chat-open .chat-pane{display:grid}.mobile-back{display:grid}.msg{max-width:86%}.chat-messages{padding-left:10px;padding-right:10px}.composer{grid-template-columns:auto auto 1fr auto}.panel{margin:10px}.grid-form{grid-template-columns:1fr}}

.auth-switch{margin-top:18px!important}.auth-switch a{color:var(--green);font-weight:700;text-decoration:none}.busy{opacity:.65;pointer-events:none}
.chat-list-actions{display:flex;gap:4px}.mobile-menu-button{display:none}.mobile-nav-links{display:grid;gap:8px;margin:14px 0}.mobile-nav-links a{color:var(--text);background:var(--panel2);text-decoration:none;padding:12px;border-radius:9px}.mobile-nav-card form{margin-top:10px}
@media(max-width:820px){.mobile-menu-button{display:grid}}

.install-card{width:min(680px,calc(100% - 32px))}.error-text{color:#ff8a80}.error-page{min-height:100vh;display:grid;place-items:center;padding:24px}.error-page .auth-card{text-align:left}
