:root{font-family:Inter,Noto Sans SC,Microsoft YaHei,ui-sans-serif,system-ui,sans-serif;color:#111b21;background:#f5f3ef;font-synthesis:none}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.62}input,textarea{width:100%;border:1px solid #d4d9d7;border-radius:10px;background:#fff;color:#111b21;outline:none}input:focus,textarea:focus{border-color:#0c7468;box-shadow:0 0 0 3px #0c74681f}textarea{resize:none;line-height:1.45}form{display:grid;gap:14px}label{display:grid;gap:6px;color:#304047;font-size:14px;font-weight:650}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.quiet{color:#667781;font-size:14px;line-height:1.6}.pad{padding:0 12px}.centered{margin:auto;text-align:center}.primary,.secondary{border:0;border-radius:10px;padding:10px 15px;font-weight:700}.primary{background:#0b6d61;color:#fff}.primary:hover:not(:disabled){background:#07564e}.secondary{background:#edf2f1;color:#28504b;white-space:nowrap}.text-button{border:0;background:transparent;color:#0a7467;font-weight:650;padding:4px 0}.text-button:hover{text-decoration:underline}.form-error,.composer-error{margin:16px 0 0;color:#b42318;font-size:13px}.auth-shell{display:grid;min-height:100vh;place-items:center;padding:24px;background:radial-gradient(circle at 12% 12%,#d6eee6,transparent 38%),#f5f3ef}.auth-card{width:min(100%,430px);padding:38px;border:1px solid #e0e2de;border-radius:20px;background:#fff;box-shadow:0 24px 70px #142d2a1f}.auth-brand,.brand-row{display:flex;align-items:center;gap:12px}.brand-mark,.rail-brand{display:inline-grid;width:40px;height:40px;place-items:center;border-radius:13px;background:#0a5d72;color:#fff;font-size:20px;font-weight:850}.auth-brand h1{margin:0;font-size:25px;letter-spacing:-.04em}.auth-brand p,.brand-row small{margin:4px 0 0;color:#667781;font-size:13px}.auth-card form{margin-top:30px}.auth-card input{padding:10px 12px}.auth-switch{margin-top:22px}.chat-shell{display:grid;grid-template-columns:64px minmax(316px,376px) minmax(0,1fr);height:100dvh;min-height:0;overflow:hidden;background:#f8f7f5}.app-rail{display:flex;min-height:0;flex-direction:column;align-items:center;gap:14px;padding:18px 10px;border-right:1px solid #e0e1dd;background:#f3f2ef}.rail-brand{width:36px;height:36px;border-radius:11px;font-size:17px}.rail-item{display:grid;width:40px;height:40px;place-items:center;border:0;border-radius:12px;background:transparent;color:#64716e;font-size:27px;line-height:1}.rail-item-active{background:#dff1e9;color:#08776a;font-weight:800}.rail-divider{width:30px;height:1px;margin-top:4px;background:#dedfda}.rail-hint{color:#89948f;font-size:10px;writing-mode:vertical-rl;letter-spacing:.15em}.rail-account{display:grid;width:34px;height:34px;margin-top:auto;place-items:center;border-radius:50%;background:#cce5de;color:#0a6258;font-size:15px;font-weight:800}.sidebar{display:flex;min-height:0;flex-direction:column;gap:15px;padding:22px 14px 14px;border-right:1px solid #dfdfdb;background:#fff}.sidebar-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:0 5px}.sidebar-actions{display:flex;gap:1px}.brand-row strong{display:block;font-size:23px;letter-spacing:-.045em}.icon-button{display:inline-grid;width:36px;height:36px;place-items:center;border:0;border-radius:10px;background:transparent;color:#28413d;font-size:21px}.icon-button:hover{background:#edf4f1}.connection{display:flex;align-items:center;gap:7px;min-height:32px;padding:0 11px;border-radius:999px;background:#f0f3f2;color:#667781;font-size:12px}.connection span:before,.chat-connection i{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#8b9693;content:""}.connection.connected{background:#e3f4eb;color:#24634c}.connection.connected span:before,.chat-connection.connected i{background:#23a86d}.connection.reconnecting,.connection.connecting{background:#fff5de;color:#825c22}.connection.reconnecting span:before,.connection.connecting span:before,.chat-connection.reconnecting i,.chat-connection.connecting i{background:#e49a34}.connection.offline{background:#fff0ee;color:#a03e3a}.connection.offline span:before,.chat-connection.offline i{background:#d54f48}.connection small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-search{position:relative;display:grid;gap:7px}.user-search input{height:48px;padding:0 15px 0 43px;border:0;border-radius:999px;background:#f3f4f3;font-size:14px}.user-search input:focus{border:1px solid #c9d9d5;box-shadow:0 0 0 3px #0c74681a}.search-icon{position:absolute;z-index:1;top:10px;left:16px;color:#687a76;font-size:24px;line-height:1}.search-status{margin:0 7px;color:#667781;font-size:12px;line-height:1.4}.search-status.error{color:#b42318}.search-results{display:grid;max-height:206px;overflow-y:auto;border:1px solid #e2e5e3;border-radius:12px;background:#fff;box-shadow:0 12px 24px #11302b14}.search-result{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;border:0;border-bottom:1px solid #edf0ee;background:transparent;color:inherit;padding:10px;text-align:left}.search-result:last-child{border-bottom:0}.search-result:hover:not(:disabled){background:#f0f7f4}.search-result strong,.search-result small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result small{margin-top:2px;color:#71817e;font-size:11px}.search-result em{color:#08776a;font-size:12px;font-style:normal;font-weight:800}.conversation-filters{display:flex;align-items:center;gap:7px;overflow-x:auto;padding:0 4px}.conversation-filters button{display:inline-flex;align-items:center;gap:5px;border:1px solid #dde2df;border-radius:999px;background:#fff;color:#61716d;padding:6px 11px;font-size:12px;font-weight:750;white-space:nowrap}.conversation-filters button:hover{background:#f0f6f3}.conversation-filters button.selected{border-color:#c9dfd7;background:#e5f2ed;color:#0a6e61}.conversation-filters span{display:inline-grid;min-width:16px;height:16px;place-items:center;border-radius:50%;background:#1ba66d;color:#fff;font-size:10px}.sidebar-label{display:flex;align-items:center;justify-content:space-between;padding:2px 6px 0;color:#6b7b77;font-size:12px;font-weight:800;letter-spacing:.05em}.sidebar-label span:last-child{display:grid;min-width:22px;height:22px;place-items:center;border-radius:999px;background:#eef1ef;color:#63736f;font-size:11px}.conversation-list{display:grid;min-height:0;align-content:start;gap:4px;overflow-y:auto;padding:0 2px}.conversation{display:flex;align-items:center;gap:12px;width:100%;min-height:68px;border:0;border-radius:14px;background:transparent;color:inherit;padding:10px;text-align:left}.conversation:hover{background:#f3f7f5}.conversation.selected{background:#edf2f0}.conversation strong,.conversation small{display:block}.conversation strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.conversation small{margin-top:4px;color:#71817e;font-size:12px}.conversation-copy{min-width:0;flex:1}.avatar{display:grid;width:39px;height:39px;flex:0 0 auto;place-items:center;border-radius:50%;background:#d6ebe5;color:#096e61;font-size:16px;font-weight:850}.unread-badge{display:inline-grid;min-width:1.45rem;height:1.45rem;padding:0 .35rem;place-items:center;border-radius:999px;background:#19a96d;color:#fff;font-size:.75rem;font-weight:800;line-height:1}.sidebar-footer{margin-top:auto;padding:7px 5px 0;border-top:1px solid #edf0ed}.logout{border:0;background:transparent;color:#9a524d;padding:8px 4px}.side-workspace{display:grid;align-content:start;gap:9px;min-height:0;overflow-y:auto;padding:2px 4px}.side-workspace h2{margin:12px 4px 0;color:#536864;font-size:12px;letter-spacing:.05em;text-transform:uppercase}.side-workspace>input{height:44px;padding:0 13px;border-radius:999px;background:#f3f4f3}.workspace-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;min-height:58px;border:0;border-radius:12px;background:#f7faf8;color:inherit;padding:9px;text-align:left}.workspace-row strong,.workspace-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-row small{margin-top:2px;color:#71817e;font-size:11px}.workspace-row em{color:#08776a;font-size:12px;font-style:normal;font-weight:800}.contact-row:hover{background:#eaf4ef}.workspace-actions{display:inline-flex;gap:8px}.toggle-row{display:flex;align-items:center;gap:8px;font-weight:600}.toggle-row input{width:17px;height:17px;accent-color:#0a7467}.invite-code{overflow-wrap:anywhere;border:1px solid #a8d9c9;border-radius:10px;background:#e7f6ee;padding:9px;color:#225b4c;font-size:12px}.invite-code strong{display:block;margin-top:4px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:15px;letter-spacing:.04em}.inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.inline-form input{min-height:40px;padding:8px 10px}.chat-panel{display:grid;min-width:0;min-height:0;height:100%;grid-template-rows:auto minmax(0,1fr) auto;background:#efeae2}.chat-panel.has-notice{grid-template-rows:auto auto minmax(0,1fr) auto}.notice{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 18px 0;border:1px solid #f0d1ca;border-radius:10px;padding:9px 12px;background:#fff5f1;color:#a23f36;font-size:13px}.notice button{border:0;background:transparent;color:inherit;font-size:20px;line-height:16px}.chat-header{display:flex;align-items:center;min-height:72px;gap:12px;padding:12px clamp(18px,3.5vw,34px);border-bottom:1px solid #e1e1dd;background:#fffffff5}.chat-avatar{width:42px;height:42px;font-size:17px}.chat-heading{min-width:0}.chat-header h1{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:17px;letter-spacing:-.02em}.chat-header p{margin:3px 0 0;color:#667781;font-size:12px}.conversation-kind{margin-left:auto;border:1px solid #deebe6;border-radius:999px;padding:5px 9px;color:#56706a;font-size:11px;white-space:nowrap}.chat-connection{display:inline-flex;align-items:center;margin-left:auto;color:#62736e;font-size:12px;white-space:nowrap}.conversation-kind+.chat-connection{margin-left:0}.chat-connection i{margin-right:0}.message-list{display:flex;min-width:0;min-height:0;flex-direction:column;gap:12px;overflow-y:auto;overscroll-behavior:contain;padding:26px clamp(18px,6vw,96px);background-color:#efeae2;background-image:radial-gradient(circle at 9px 9px,rgba(151,123,81,.06) 1.1px,transparent 1.2px),radial-gradient(circle at 27px 25px,rgba(151,123,81,.035) 1.5px,transparent 1.6px);background-size:36px 36px,52px 52px}.load-more{align-self:center;border:1px solid #d7ded9;border-radius:999px;padding:7px 13px;background:#ffffffe0;color:#46615a;font-size:12px}.message{align-self:flex-start;max-width:min(78%,620px)}.message.own{align-self:flex-end}.bubble{border-radius:7px 16px 16px;background:#fff;padding:10px 13px;box-shadow:0 1px 1px #1e373112;overflow-wrap:anywhere;white-space:pre-wrap;line-height:1.5}.own .bubble{border-radius:16px 7px 16px 16px;background:#d9fdd3;color:#172621}.pending .bubble{opacity:.76}.pending.failed .bubble{background:#fff0ee;color:#8d332e}.message-meta{display:flex;align-items:center;justify-content:flex-end;gap:7px;padding:4px 3px 0;color:#73817d;font-size:11px}.message.unavailable .bubble{background:#edf0ee;color:#6b7975;font-style:italic}.message-actions{display:inline-flex;gap:8px}.message-actions .text-button{color:#64746f;font-size:11px}.attachment-bubble{display:grid;min-width:180px;gap:7px}.attachment-bubble img{display:block;width:min(100%,360px);max-height:320px;object-fit:contain;border-radius:9px;background:#eef8f3b3}.attachment-bubble a{color:inherit;overflow-wrap:anywhere;font-weight:750}.attachment-bubble small{font-size:11px;opacity:.75}.attachment-error,.voice-bubble small{color:#ad332d}.voice-bubble{display:grid;min-width:184px;grid-template-columns:auto minmax(90px,1fr);align-items:center;gap:9px}.voice-toggle{border:0;border-radius:999px;padding:8px 11px;background:#dcece6;color:#135f54;font-weight:800}.own .voice-toggle{background:#08765d24;color:#07564d}.voice-track{display:grid;gap:4px;font-size:11px}.voice-track progress{width:100%;height:5px;accent-color:#0b796b}.voice-bubble audio{display:none}.composer{position:relative;display:grid;grid-template-columns:auto auto auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:12px clamp(14px,3vw,28px) 16px;border-top:1px solid rgba(218,218,213,.8);background:#efeae2fa}.composer textarea{min-height:48px;max-height:120px;padding:13px 14px;border:0;border-radius:999px;background:#fff}.composer .primary{min-width:62px;min-height:44px;border-radius:999px}.composer .secondary{min-width:42px;min-height:42px;padding:8px;border-radius:50%;background:transparent;color:#516561}.composer .secondary:hover{background:#e3e7e4}.emoji-picker{position:relative}.emoji-trigger{font-size:20px;line-height:1}.emoji-menu{position:absolute;z-index:3;bottom:calc(100% + 8px);left:0;display:grid;grid-template-columns:repeat(4,34px);gap:4px;padding:7px;border:1px solid #d6dfdb;border-radius:12px;background:#fff;box-shadow:0 12px 30px #1644382b}.emoji-menu button{border:0;border-radius:7px;padding:5px;background:transparent;font-size:18px}.emoji-menu button:hover,.emoji-menu button:focus-visible{background:#e7f4ee;outline:none}.attachment-trigger{font-size:0}.attachment-trigger:before{content:"+";font-size:27px;font-weight:400;line-height:1}.voice-recorder{display:flex;align-items:center;gap:7px}.voice-recorder .secondary{font-size:0}.voice-recorder .secondary:before{content:"●";color:#0b7869;font-size:18px}.voice-recorder .secondary:hover:before{color:#07574e}.voice-recorder .text-button{font-size:12px}.voice-recorder .secondary:has(+.recording-format){min-width:auto;border-radius:10px;font-size:13px}.voice-recorder .secondary:has(+.recording-format):before{content:none}.recording-format{color:#5e6e69;font-size:.76rem;white-space:nowrap}.composer-error{position:absolute;top:-21px;left:28px;z-index:2;margin:0;border-radius:7px;background:#fff5f3;padding:3px 7px;box-shadow:0 1px 4px #501e191f}.empty-conversation{display:grid;min-height:0;place-content:center;justify-items:center;padding:30px;text-align:center;color:#65736e;background:#f8f7f5}.empty-illustration{display:grid;width:126px;height:126px;place-items:center;border:2px solid #0b7467;border-radius:38% 62% 55% 45%/48% 42% 58% 52%;background:linear-gradient(145deg,#ddf6dc,#9ee6ca);box-shadow:inset -12px -12px #ffffff6e;transform:rotate(-8deg)}.empty-illustration i{display:grid;width:68px;height:68px;place-items:center;border:2px solid #0b7467;border-radius:21px;background:#fff;color:#0a6c60;font-size:34px;font-style:normal;font-weight:900;transform:rotate(8deg)}.empty-conversation h1{margin:24px 0 0;color:#233a35;font-size:25px;letter-spacing:-.04em}.empty-conversation p{max-width:360px;margin:10px 0 0;line-height:1.65}.empty-conversation small{margin-top:34px;color:#8b9792;font-size:12px}@media(max-width:960px){.chat-shell{grid-template-columns:56px minmax(280px,330px) minmax(0,1fr)}.app-rail{padding-inline:8px}.sidebar{padding-inline:12px}.message-list{padding-inline:28px}}@media(max-width:720px){.chat-shell{grid-template-columns:1fr;grid-template-rows:minmax(246px,43dvh) minmax(0,1fr);height:100dvh}.app-rail{display:none}.sidebar{min-height:0;padding:16px 12px 10px;border-right:0;border-bottom:1px solid #dedfda}.sidebar-top{padding:0 3px}.brand-row strong{font-size:20px}.connection{min-height:28px}.conversation-list{grid-auto-flow:column;grid-auto-columns:minmax(195px,1fr);grid-template-columns:unset;overflow-x:auto;overflow-y:hidden}.conversation{min-height:64px}.sidebar-footer{display:none}.chat-panel{min-height:0}.chat-header{min-height:64px;padding:10px 16px}.conversation-kind{display:none}.chat-connection{font-size:0}.chat-connection i{margin:0}.message-list{padding:18px 14px}.message{max-width:87%}.composer{grid-template-columns:auto auto auto minmax(0,1fr) auto;gap:3px;padding:9px 8px 12px}.composer .primary{min-width:52px;padding-inline:10px}.composer textarea{padding-inline:11px}.auth-card{padding:28px 22px}}@media(max-width:410px){.chat-shell{grid-template-rows:minmax(238px,42dvh) minmax(0,1fr)}.voice-recorder .secondary{min-width:35px}.emoji-trigger,.attachment-trigger{min-width:35px!important}.composer .primary{min-width:46px;font-size:12px}}
