:root{color-scheme:light;--accent: #3390ec;--accent-hover: #2b7fd4;--accent-active: #2674c2;--on-accent: #ffffff;--bg: #ffffff;--bg-side: #ffffff;--bg-chat: #ccd5dd;--bg-chat-grad-a: #d3dce4;--bg-chat-grad-b: #c3cfd9;--chat-dot: rgba(255, 255, 255, .45);--bg-hover: #f2f3f5;--bg-active: #e9eaec;--bg-input: #f1f3f5;--page-bg: #c6cdd3;--text: #000000;--text-muted: #707991;--muted: var(--text-muted);--border: var(--divider);--divider: #e7e8ea;--bubble-in: #ffffff;--bubble-out: #effdde;--bubble-out-grad: #e4f7cf;--bubble-meta: rgba(0, 0, 0, .38);--bubble-meta-out: #5aab6e;--check-read: #4fa3e3;--radius-bubble: 14px;--radius-md: 12px;--radius-sm: 8px;--avatar-radius: 50%;--shadow-bubble: 0 1px 2px rgba(0, 0, 0, .12);--shadow-pop: 0 2px 10px rgba(0, 0, 0, .16);--shadow-panel: 0 0 24px rgba(0, 0, 0, .14);--shadow-sidebar: 1px 0 0 var(--divider), 4px 0 12px rgba(0, 0, 0, .04);--t-fast: .12s ease;--t: .17s ease;--app-max-width: 1280px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text)}[data-theme=dark]{color-scheme:dark;--accent: #5aa7ef;--accent-hover: #6fb3f2;--accent-active: #4e98e0;--bg: #17212b;--bg-side: #17212b;--bg-chat: #0e1621;--bg-chat-grad-a: #0f1a25;--bg-chat-grad-b: #0b131c;--bg-hover: #202b36;--bg-active: #2b3743;--bg-input: #242f3d;--page-bg: #0a0f14;--chat-dot: rgba(255, 255, 255, .035);--text: #ffffff;--text-muted: #7d8e9e;--divider: #0d161f;--bubble-in: #182533;--bubble-out: #2b5278;--bubble-out-grad: #2b5278;--bubble-meta: rgba(255, 255, 255, .4);--bubble-meta-out: rgba(255, 255, 255, .5);--check-read: #6fcaff;--shadow-bubble: 0 1px 2px rgba(0, 0, 0, .35);--shadow-pop: 0 2px 12px rgba(0, 0, 0, .5);--shadow-panel: 0 0 24px rgba(0, 0, 0, .5);--shadow-sidebar: 1px 0 0 var(--divider), 4px 0 12px rgba(0, 0, 0, .25)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--page-bg)}.app-shell{height:100%;max-width:var(--app-max-width);margin:0 auto;background:var(--bg);display:flex;overflow:hidden;border-left:1px solid var(--divider);border-right:1px solid var(--divider);box-shadow:var(--shadow-panel)}@media(max-width:600px){.app-shell{max-width:100%;border:none;box-shadow:none}}.auth-screen{margin:auto;width:100%;display:flex;justify-content:center}.auth-card{display:flex;flex-direction:column;gap:12px;width:320px;padding:28px}.auth-card h1{margin:0 0 8px;font-size:24px;text-align:center}.auth-card input{padding:11px 12px;border:1px solid var(--divider);border-radius:8px;font-size:15px;outline:none}.auth-card input:focus{border-color:var(--accent)}.password-field{position:relative;display:flex}.password-field input{flex:1;padding-right:42px}.password-toggle{position:absolute;top:0;right:0;height:100%;width:40px;display:flex;align-items:center;justify-content:center;border:none;background:none;padding:0;color:var(--muted, #707579);cursor:pointer}.password-toggle:hover{color:var(--text)}.auth-card button[type=submit]{padding:11px 12px;border:none;border-radius:8px;background:var(--accent);color:#fff;font-size:15px;cursor:pointer}.auth-card button[type=submit]:disabled{opacity:.5;cursor:default}.auth-link{background:none;border:none;color:var(--accent);cursor:pointer;font-size:14px}.auth-error{margin:0;color:#d14836;font-size:14px;text-align:center}.home{display:flex;width:100%;height:100%}.sidebar{width:320px;min-width:260px;display:flex;flex-direction:column;background:var(--bg-side);box-shadow:var(--shadow-sidebar);z-index:1}.home-header{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--divider);font-weight:600}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:50%;background:none;color:var(--text-muted);cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}.icon-button:hover{background:var(--bg-hover);color:var(--text)}.home-header-actions{display:inline-flex;align-items:center;gap:4px}.home-header button{background:none;border:none;color:var(--accent);cursor:pointer;font-weight:400}.home-header .icon-button{color:var(--text-muted)}.notif-settings{position:relative;display:inline-flex}.notif-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:20;min-width:240px;padding:6px;background:var(--bg);border:1px solid var(--divider);border-radius:var(--radius-md);box-shadow:var(--shadow-pop)}.notif-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border-radius:var(--radius-sm);font-weight:400;cursor:pointer}.notif-row:hover{background:var(--bg-hover)}.notif-row input{cursor:pointer;width:16px;height:16px;accent-color:var(--accent)}.notif-hint{padding:6px 10px 8px;color:var(--text-muted);font-size:12px;font-weight:400}.conversation{flex:1;display:flex;background-color:var(--bg-chat);background-image:radial-gradient(var(--chat-dot) 1px,transparent 1.5px),linear-gradient(135deg,var(--bg-chat-grad-a),var(--bg-chat-grad-b));background-size:22px 22px,100% 100%}.conversation-empty{margin:auto;padding:7px 16px;border-radius:16px;background:#0000002e;color:#fff;font-size:14px}.conv{display:flex;flex-direction:column;flex:1;min-width:0}.conv-header{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--divider);font-weight:600}.conv-back{display:none;border:none;background:none;font-size:26px;line-height:1;color:var(--accent);cursor:pointer;padding:0 4px 0 0}.conv-typing{display:inline-flex;align-items:center;flex:none;font-weight:400;font-size:13px;color:var(--accent)}.typing-dots{display:inline-flex;align-items:flex-end;gap:2px;margin-left:4px;margin-bottom:2px}.typing-dots i{width:3px;height:3px;border-radius:50%;background:currentColor;animation:typing-pulse 1.2s infinite ease-in-out}.typing-dots i:nth-child(2){animation-delay:.2s}.typing-dots i:nth-child(3){animation-delay:.4s}@keyframes typing-pulse{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}.conv-headline{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:1px;border:none;background:none;padding:0;font:inherit;text-align:left;cursor:default}.conv-headline--clickable{cursor:pointer}.conv-title{font-weight:600;font-size:16px;color:var(--text);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv-subtitle{font-weight:400;font-size:13px;color:var(--text-muted)}.conv-subtitle--online,.conv-headline--clickable:hover .conv-title{color:var(--accent)}.conv-scroll{flex:1;overflow-y:auto;padding:16px}.conv-loading{text-align:center;color:var(--text-muted);font-size:13px;padding-bottom:8px}.conv-messages{display:flex;flex-direction:column;gap:2px}.date-divider{display:flex;justify-content:center;margin:12px 0 10px}.date-divider span{padding:4px 12px;border-radius:14px;background:#0000002e;color:#fff;font-size:13px;font-weight:500}.bubble{position:relative;max-width:70%;align-self:flex-start;display:flex;flex-direction:column;padding:6px 10px;border-radius:var(--radius-bubble);background:var(--bubble-in);color:var(--text);font-size:15px;line-height:1.34;word-wrap:break-word;overflow-wrap:anywhere;box-shadow:var(--shadow-bubble)}.bubble.is-group-start{margin-top:8px}.bubble-own{align-self:flex-end;background:linear-gradient(var(--bubble-out),var(--bubble-out-grad))}.bubble.is-tail:not(.bubble-own){border-bottom-left-radius:5px}.bubble.is-tail:not(.bubble-own):after{content:"";position:absolute;left:-6px;bottom:0;border-right:8px solid var(--bubble-in);border-top:11px solid transparent}.bubble-own.is-tail{border-bottom-right-radius:5px}.bubble-own.is-tail:after{content:"";position:absolute;right:-6px;bottom:0;border-left:8px solid var(--bubble-out-grad);border-top:11px solid transparent}.bubble-pending{opacity:.6}.bubble-failed{background:#ffe3e3}.bubble-content{white-space:pre-wrap}.bubble-meta{align-self:flex-end;display:inline-flex;align-items:center;gap:5px;margin-top:2px;font-size:11px;line-height:1;color:var(--bubble-meta);-webkit-user-select:none;user-select:none;white-space:nowrap}.bubble-own .bubble-meta{color:var(--bubble-meta-out)}.bubble-status{letter-spacing:-1px}.bubble-status.is-read,.bubble-own .bubble-status.is-read{color:var(--check-read)}.bubble-actions{display:none;position:absolute;top:50%;right:calc(100% + 6px);transform:translateY(-50%);gap:10px;padding:4px 8px;white-space:nowrap;background:var(--bg);border-radius:14px;box-shadow:0 1px 6px #0000002e}.bubble-own:hover .bubble-actions{display:inline-flex}.bubble-actions button{border:none;background:none;color:var(--text-muted);font-size:12px;cursor:pointer;padding:0}.bubble-actions button:hover{color:var(--accent)}.bubble-image{display:block}.bubble-image img{display:block;max-width:280px;max-height:320px;width:auto;height:auto;border-radius:8px}.bubble-caption{display:block;margin-top:4px}.conv-attach{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border:none;border-radius:50%;background:none;color:var(--text-muted);cursor:pointer;transition:color var(--t-fast),background var(--t-fast)}.conv-attach:hover:not(:disabled){color:var(--accent);background:var(--bg-hover)}.conv-attach:disabled{opacity:.4;cursor:default}.img-editor-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0000008c;display:flex;align-items:center;justify-content:center}.img-editor{background:var(--bg);border-radius:12px;padding:16px;width:min(520px,92vw);display:flex;flex-direction:column;gap:12px}.img-editor-preview{display:flex;align-items:center;justify-content:center;min-height:240px;max-height:60vh;overflow:hidden;background:var(--bg-input);border-radius:8px}.img-editor-preview img{max-width:100%;max-height:60vh;object-fit:contain}.img-editor-controls{display:flex;align-items:center;gap:8px}.img-editor-controls input{flex:1;padding:9px 12px;border:1px solid var(--divider);border-radius:18px;outline:none;font-size:14px}.img-editor-controls input:focus{border-color:var(--accent)}.img-editor-controls button{border:none;border-radius:8px;padding:8px 14px;cursor:pointer;background:var(--bg-input);color:var(--text)}.img-editor-controls button[data-testid=image-send]{background:var(--accent);color:#fff}.img-editor-controls button:disabled{opacity:.5;cursor:default}.conv-editing{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;background:var(--bg-hover);border-top:1px solid var(--divider);font-size:13px;color:var(--text-muted)}.conv-editing button{border:none;background:none;color:var(--accent);cursor:pointer}.conv-input{display:flex;align-items:flex-end;gap:8px;padding:8px 12px;background:var(--bg);border-top:1px solid var(--divider)}.conv-input-field{flex:1;display:flex;align-items:center;gap:4px;padding:0 6px 0 8px;background:var(--bg-input);border:1px solid transparent;border-radius:20px;transition:border-color var(--t-fast),background var(--t-fast)}.conv-input-field:focus-within{background:var(--bg);border-color:var(--accent)}.conv-input-field input{flex:1;min-width:0;padding:10px 6px;border:none;background:none;outline:none;font-size:15px;color:var(--text)}.conv-input-field input::placeholder{color:var(--text-muted)}.conv-send{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:none;border-radius:50%;background:var(--accent);color:#fff;cursor:pointer;opacity:0;transform:scale(.6);transition:opacity var(--t),transform var(--t),background var(--t-fast)}.conv-send.is-visible{opacity:1;transform:scale(1)}.conv-send:disabled{cursor:default}.conv-send svg{transform:translate(1px)}.account-notices{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:100;display:flex;flex-direction:column;gap:8px;width:max-content;max-width:90vw}.account-notice{display:flex;align-items:flex-start;gap:12px;padding:10px 14px;border-radius:10px;background:#2b2b36;color:#fff;box-shadow:0 4px 16px #00000040}.account-notice-body{display:flex;flex-direction:column;gap:2px}.account-notice-text{font-size:14px}.account-notice-detail{font-size:12px;color:#fff9}.account-notice button{border:none;background:none;color:#fff9;font-size:18px;line-height:1;cursor:pointer;padding:0}.account-notice button:hover{color:#fff}.chat-list{display:flex;flex-direction:column;min-height:0;flex:1}.chat-list-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--divider)}.chat-list-bar-title{font-weight:600;font-size:15px}.chat-list-compose{width:34px;height:34px;border:none;border-radius:50%;background:var(--accent);color:#fff;font-size:22px;line-height:1;cursor:pointer;transition:background var(--t-fast),transform var(--t-fast)}.chat-list-compose:active{transform:scale(.94)}.chat-search{position:relative;display:flex;align-items:center;padding:6px 12px 8px}.chat-search-icon{position:absolute;left:24px;display:inline-flex;color:var(--text-muted);pointer-events:none}.chat-search-input{flex:1;min-width:0;height:36px;padding:0 12px 0 38px;border:1px solid transparent;border-radius:18px;background:var(--bg-input);font-size:14px;color:var(--text);outline:none;transition:background var(--t-fast),border-color var(--t-fast)}.chat-search-input::placeholder{color:var(--text-muted)}.chat-search-input:focus{background:var(--bg);border-color:var(--accent)}.chat-search-input::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.new-chat-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#00000073;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh}.new-chat-dialog{background:var(--bg);border-radius:12px;padding:16px;width:min(420px,92vw);display:flex;flex-direction:column;gap:12px}.new-chat-tabs{display:flex;align-items:center;gap:8px}.new-chat-tabs button{border:none;background:none;padding:6px 4px;font-size:15px;color:var(--muted, #707579);cursor:pointer;border-bottom:2px solid transparent}.new-chat-tabs button.is-active{color:var(--accent);border-bottom-color:var(--accent)}.new-chat-tabs .new-chat-close{margin-left:auto;font-size:14px;color:var(--muted, #707579)}.new-chat-form{display:flex;flex-direction:column;gap:10px}.new-chat-form input{padding:9px 12px;border:1px solid var(--divider);border-radius:18px;outline:none;font-size:14px}.new-chat-form input:focus{border-color:var(--accent)}.new-group-options{display:flex;flex-direction:column;max-height:200px;overflow-y:auto;border:1px solid var(--divider);border-radius:10px}.new-group-option{text-align:left;border:none;background:none;padding:9px 12px;font-size:14px;color:var(--text);cursor:pointer;border-bottom:1px solid var(--divider)}.new-group-option:last-child{border-bottom:none}.new-group-option:hover{background:var(--bg-hover)}.new-group-hint{margin:0;padding:8px 4px;font-size:13px;color:var(--muted, #707579)}.new-group-members{display:flex;flex-wrap:wrap;gap:6px}.group-member{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 10px;background:var(--bg-input);border-radius:14px;font-size:13px}.group-member button{border:none;background:none;color:var(--muted, #707579);cursor:pointer;font-size:12px;padding:0;line-height:1}.new-chat-form button[type=submit]{align-self:flex-end;border:none;border-radius:8px;padding:9px 16px;background:var(--accent);color:#fff;font-size:14px;cursor:pointer}.new-chat-form button[type=submit]:disabled{opacity:.5;cursor:default}.new-chat-error{margin:0;color:#d14836;font-size:13px}.chat-list-items{flex:1;overflow-y:auto;min-height:0}.chat-list-empty{padding:16px;color:var(--text-muted);text-align:center}.chat-item{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;column-gap:12px;row-gap:2px;width:100%;padding:8px 12px;border:none;background:none;text-align:left;cursor:pointer;transition:background var(--t-fast)}.chat-item:hover{background:var(--bg-hover)}.chat-item:active{background:var(--bg-active)}.chat-item.is-selected{background:var(--accent);color:var(--on-accent)}.chat-avatar{grid-column:1;grid-row:1 / span 2;width:50px;height:50px;border-radius:var(--avatar-radius);display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;font-weight:600;flex-shrink:0;box-shadow:0 1px 2px #0000001f}.chat-item-row{grid-column:2;display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.chat-item-top{grid-row:1}.chat-item-bottom{grid-row:2}.chat-item-title{font-weight:600;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-item-time{flex-shrink:0;font-size:12px;color:var(--text-muted)}.chat-item.is-selected .chat-item-time{color:#ffffffd9}.chat-item-preview{font-size:13px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-item.is-selected .chat-item-preview{color:#ffffffd9}.chat-item-unread{flex-shrink:0;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:#fff;font-size:12px;font-weight:600;line-height:20px;text-align:center}.chat-item.is-selected .chat-item-unread{background:#fff;color:var(--accent)}.auth-card button[type=submit],.new-chat-form button[type=submit],.members-add-btn{transition:background var(--t-fast)}.auth-card button[type=submit]:hover:not(:disabled),.conv-send:hover:not(:disabled),.chat-list-compose:hover,.members-add-btn:hover:not(:disabled),.new-chat-form button[type=submit]:hover:not(:disabled){background:var(--accent-hover)}.auth-card button[type=submit]:active:not(:disabled),.conv-send:active:not(:disabled),.chat-list-compose:active,.members-add-btn:active:not(:disabled),.new-chat-form button[type=submit]:active:not(:disabled){background:var(--accent-active)}.home-header button:hover,.conv-editing button:hover,.auth-link:hover{text-decoration:underline}@media(max-width:600px){.sidebar{width:100%;min-width:0;border-right:none}.home .conversation,.home--chat-open .sidebar{display:none}.home--chat-open .conversation{display:flex}.conv-back{display:inline-flex;align-items:center}.bubble{max-width:85%}.account-notices{width:92vw}}.members-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#00000073;display:flex;align-items:flex-start;justify-content:center;padding-top:10vh}.members-dialog{background:var(--bg);border-radius:12px;padding:16px;width:min(420px,92vw);display:flex;flex-direction:column;gap:12px}.members-head{display:flex;align-items:center;gap:8px}.members-head-text{display:flex;flex-direction:column}.members-title{font-weight:600;font-size:16px}.members-count{font-size:13px;color:var(--text-muted)}.members-close{margin-left:auto;border:none;background:none;font-size:14px;color:var(--text-muted);cursor:pointer}.members-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:60vh;overflow-y:auto}.member-row{display:flex;align-items:center;gap:10px;padding:6px 4px}.member-avatar{position:relative;flex:none;width:38px;height:38px;border-radius:50%;color:#fff;font-weight:600;display:flex;align-items:center;justify-content:center}.member-online-dot{position:absolute;right:0;bottom:0;width:11px;height:11px;border-radius:50%;background:#4dcd5e;border:2px solid var(--bg)}.member-info{display:flex;flex-direction:column;flex:1;min-width:0}.member-name{font-size:14px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-status{font-size:12px;color:var(--text-muted)}.member-remove{flex:none;border:none;background:none;color:#e0533d;font-size:13px;cursor:pointer;padding:4px 6px}.member-remove:disabled{opacity:.5;cursor:default}.members-empty{color:var(--text-muted);font-size:14px;text-align:center;margin:8px 0}.members-add{display:flex;gap:8px;margin-top:12px}.members-add-input{flex:1;min-width:0;padding:8px 10px;border:1px solid var(--border, #d0d0d0);border-radius:8px;font-size:14px}.members-add-btn{flex:none;border:none;border-radius:8px;background:var(--accent, #3390ec);color:#fff;font-size:14px;padding:8px 14px;cursor:pointer}.members-add-btn:disabled{opacity:.5;cursor:default}.members-error{color:#e0533d;font-size:13px;margin:0}
