:root{color-scheme:dark;--bg:#0b0c0f;--panel:#121419;--panel2:#1a1d24;--line:#2a2f39;--text:#f4f5f7;--muted:#9ca3af;--accent:#74d6ae;--danger:#ef6b73;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,textarea{font:inherit}button{border:0;border-radius:10px;background:var(--accent);color:#07110d;font-weight:700;padding:.75rem 1rem;cursor:pointer}button:disabled{opacity:.55}.secondary{background:var(--panel2);color:var(--text);border:1px solid var(--line)}.danger{background:var(--danger);color:#180506}.icon-button,.link-button{background:transparent;color:var(--text);padding:.4rem}.muted{color:var(--muted)}.error{color:#ff9da4;min-height:1.3em}.auth-page{min-height:100dvh;display:grid;place-items:center;padding:1rem;background:radial-gradient(circle at top,#18352c 0,transparent 36%),var(--bg)}.auth-card{width:min(100%,420px);padding:2rem;border:1px solid var(--line);border-radius:20px;background:rgba(18,20,25,.96);box-shadow:0 30px 80px #0008}.brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:var(--accent);color:#07110d;font-size:1.4rem;font-weight:900}.auth-card h1{margin:.9rem 0 .25rem}.auth-card form,.modal-card{display:grid;gap:1rem}.auth-card label,.modal-card label{display:grid;gap:.4rem;color:#d8dce3;font-size:.92rem}input,textarea{width:100%;border:1px solid var(--line);border-radius:11px;background:#0d0f13;color:var(--text);padding:.8rem;outline:none}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #74d6ae22}.shell{height:100dvh;display:grid;grid-template-columns:300px 1fr}.sidebar{background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:1rem;gap:1rem;min-width:0}.sidebar-head,.topbar{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.sidebar-head .icon-button{display:none}.conversation-list{display:grid;gap:.35rem;overflow:auto}.conversation{background:transparent;color:var(--muted);font-weight:500;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation:hover,.conversation.active{background:var(--panel2);color:var(--text)}.sidebar-foot{margin-top:auto;display:flex;align-items:center;gap:.5rem;border-top:1px solid var(--line);padding-top:.8rem;font-size:.85rem}.sidebar-foot span{margin-right:auto;overflow:hidden;text-overflow:ellipsis}.chat-pane{min-width:0;display:grid;grid-template-rows:auto 1fr auto}.topbar{padding:.8rem 1rem;border-bottom:1px solid var(--line);background:#0b0c0fe8;backdrop-filter:blur(12px)}.topbar>div{min-width:0;display:grid}.topbar small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55vw}.topbar .icon-button{display:none}.status{font-size:.8rem;color:var(--muted)}.messages{overflow:auto;padding:1.2rem max(1rem,calc((100% - 820px)/2));display:flex;flex-direction:column;gap:1rem}.welcome{margin:auto;text-align:center;color:var(--muted);max-width:440px}.message{max-width:88%;display:grid;gap:.35rem}.message small{color:var(--muted)}.message>div{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55;padding:1rem;border-radius:16px;background:var(--panel2);border:1px solid var(--line)}.message.user{align-self:flex-end}.message.user>div{background:#173a2d;border-color:#255c47}.activity{border:1px solid var(--line);border-radius:10px;padding:.65rem;color:var(--muted);font-size:.83rem}.activity pre{white-space:pre-wrap;overflow:auto;max-height:220px}.composer{display:flex;gap:.65rem;padding:1rem max(1rem,calc((100% - 820px)/2));border-top:1px solid var(--line);background:var(--panel)}.composer textarea{resize:none;min-height:46px;max-height:180px}.composer button{align-self:flex-end}.modal{position:fixed;inset:0;background:#000a;display:grid;place-items:center;padding:1rem;z-index:10}.modal[hidden]{display:none}.modal-card{width:min(100%,440px);background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:1.25rem}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem}@media(max-width:760px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 18% 0 0;z-index:5;transform:translateX(-105%);transition:transform .2s;box-shadow:20px 0 60px #000b}.sidebar.open{transform:none}.sidebar-head .icon-button,.topbar .icon-button{display:block}.messages{padding:1rem}.composer{padding:.75rem}.message{max-width:94%}.topbar small{max-width:58vw}}

.composer{display:grid}.composer-row{display:flex;gap:.65rem;align-items:flex-end}.attach-button{flex:0 0 46px;width:46px;height:46px;padding:0;font-size:1.45rem}.pending-attachments{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.1rem}.attachment-chip{position:relative;flex:0 0 auto;display:grid;grid-template-columns:38px minmax(80px,150px) 26px;align-items:center;gap:.5rem;min-height:48px;padding:.35rem;border:1px solid var(--line);border-radius:8px;background:var(--panel2)}.attachment-chip img,.attachment-icon{width:38px;height:38px;border-radius:5px;object-fit:cover;background:#0d0f13}.attachment-icon{display:grid;place-items:center;color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase}.attachment-info{min-width:0;display:grid;gap:.15rem}.attachment-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.attachment-meta{color:var(--muted);font-size:.72rem}.attachment-remove{width:26px;height:26px;padding:0;border-radius:6px;background:transparent;color:var(--muted);font-size:1.1rem}.attachment-remove:hover{background:#ffffff12;color:var(--text)}.upload-progress{position:absolute;left:.35rem;right:.35rem;bottom:0;height:2px;background:#ffffff12}.upload-progress span{display:block;height:100%;background:var(--accent)}.message-files{display:grid;gap:.4rem;margin-top:.65rem}.message-file{display:flex;align-items:center;gap:.5rem;color:inherit;text-decoration:none;border-top:1px solid #ffffff18;padding-top:.5rem;font-size:.82rem}.message-file img{width:52px;height:52px;object-fit:cover;border-radius:5px}.message-file span{overflow-wrap:anywhere}@media(max-width:760px){.composer-row{gap:.45rem}.composer-row button:not(.attach-button){padding:.75rem}}
