:root{--font: "Avenir Next", "Segoe UI", system-ui, -apple-system, sans-serif;--ease: cubic-bezier(.22, 1, .36, 1);--dur: .18s;--dur-med: .32s;--radius: 16px;--radius-sm: 12px}:root,html[data-theme=dark]{--ink: #061428;--deep: #0a2a5c;--blue: #1a6fd4;--sky: #5aa8f0;--accent: #3d8fe0;--accent-2: #1a6fd4;--accent-rgb: 61, 143, 224;--text: #e8f1ff;--muted: rgba(232, 241, 255, .68);--line: rgba(94, 176, 255, .2);--panel: #071526;--surface: #0a1a30;--surface-2: #0d213d;--surface-3: #102646;--header: rgba(10, 24, 48, .78);--input: #07111f;--row-hover: rgba(61, 143, 224, .14);--bubble-mine: linear-gradient(145deg, #1a6fd4 0%, #2f86ea 58%, #4aa0f5 100%);--bubble-theirs: #15263f;--on-accent: #ffffff;--brand: #e8f1ff;--danger: #ff8b8b;--danger-bg: rgba(120, 20, 40, .35);--danger-line: rgba(255, 120, 140, .35);--ok: #9be7c0;--online: #30d158;--overlay: rgba(2, 8, 20, .58);--glass: rgba(8, 20, 40, .72);--chat-wash: rgba(61, 143, 224, .12);--avatar-from: #3d8fe0;--avatar-to: #0a2a5c;--badge-ink: #031028;--call-stage: #03101f;--read-tick: #9be7ff;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .28);--shadow-md: 0 10px 28px rgba(0, 8, 24, .38);--shadow-lg: 0 24px 64px rgba(0, 0, 0, .45);--shadow: var(--shadow-lg);--glow: 0 0 0 3px rgba(61, 143, 224, .28), 0 8px 24px rgba(61, 143, 224, .22);--body-bg: radial-gradient(ellipse 90% 60% at 70% 10%, rgba(30, 111, 212, .38), transparent 55%), radial-gradient(ellipse 70% 50% at 10% 80%, rgba(10, 42, 92, .72), transparent 50%), linear-gradient(160deg, #030b18 0%, #0a1f45 45%, #061428 100%);--scroll-thumb: rgba(94, 176, 255, .4);--scroll-thumb-hover: rgba(94, 176, 255, .65);color-scheme:dark}html[data-theme=light]{--ink: #e8f1ff;--deep: #d7e8ff;--blue: #2aabee;--sky: #2aabee;--accent: #2aabee;--accent-2: #1a9ed9;--accent-rgb: 42, 171, 238;--text: #111111;--muted: rgba(107, 107, 112, .92);--line: rgba(198, 198, 200, .65);--panel: #e7ebf0;--surface: #ffffff;--surface-2: #f2f2f7;--surface-3: #e7ebf0;--header: rgba(255, 255, 255, .82);--input: #ffffff;--row-hover: rgba(42, 171, 238, .09);--bubble-mine: linear-gradient(145deg, #1ea0e0 0%, #2aabee 55%, #4bc4f5 100%);--bubble-theirs: #ffffff;--on-accent: #ffffff;--brand: #111111;--danger: #ff3b30;--danger-bg: rgba(255, 59, 48, .08);--danger-line: rgba(255, 59, 48, .28);--ok: #34c759;--online: #34c759;--overlay: rgba(17, 17, 17, .32);--glass: rgba(255, 255, 255, .78);--chat-wash: rgba(42, 171, 238, .08);--avatar-from: #2aabee;--avatar-to: #1565c0;--badge-ink: #ffffff;--call-stage: #0e1621;--read-tick: #e8f7ff;--shadow-sm: 0 1px 2px rgba(17, 17, 17, .06);--shadow-md: 0 10px 28px rgba(17, 27, 46, .1);--shadow-lg: 0 22px 56px rgba(17, 27, 46, .14);--shadow: var(--shadow-lg);--glow: 0 0 0 3px rgba(42, 171, 238, .22), 0 8px 22px rgba(42, 171, 238, .18);--scroll-thumb: rgba(42, 171, 238, .34);--scroll-thumb-hover: rgba(42, 171, 238, .52);--body-bg: radial-gradient(ellipse 90% 60% at 80% 0%, rgba(42, 171, 238, .14), transparent 50%), linear-gradient(180deg, #eef3f8 0%, #e7ebf0 100%);color-scheme:light}html[data-theme=pink]{--ink: #fff5f8;--deep: #ffe4ec;--blue: #e84a7f;--sky: #e84a7f;--accent: #e84a7f;--accent-2: #f06a96;--accent-rgb: 232, 74, 127;--text: #2a1520;--muted: rgba(138, 90, 108, .92);--line: #f0c8d4;--panel: #fce8ef;--surface: #fff5f8;--surface-2: #ffe4ec;--surface-3: #f8d4de;--header: rgba(255, 245, 248, .84);--input: #ffffff;--row-hover: rgba(232, 74, 127, .1);--bubble-mine: linear-gradient(145deg, #e84a7f 0%, #f06a96 100%);--bubble-theirs: #ffffff;--on-accent: #ffffff;--brand: #2a1520;--danger: #d32f2f;--danger-bg: rgba(211, 47, 47, .08);--danger-line: rgba(211, 47, 47, .28);--ok: #34c759;--online: #34c759;--overlay: rgba(42, 21, 32, .4);--glass: rgba(255, 245, 248, .78);--chat-wash: rgba(232, 74, 127, .14);--avatar-from: #f06a96;--avatar-to: #e84a7f;--badge-ink: #ffffff;--call-stage: #2a1520;--read-tick: #ffe4ec;--shadow-sm: 0 1px 2px rgba(42, 21, 32, .07);--shadow-md: 0 10px 28px rgba(232, 74, 127, .14);--shadow-lg: 0 22px 56px rgba(42, 21, 32, .14);--shadow: var(--shadow-lg);--glow: 0 0 0 3px rgba(232, 74, 127, .24), 0 8px 22px rgba(232, 74, 127, .2);--scroll-thumb: rgba(232, 74, 127, .38);--scroll-thumb-hover: rgba(232, 74, 127, .58);--body-bg: radial-gradient(ellipse 90% 55% at 82% 0%, rgba(232, 74, 127, .2), transparent 52%), radial-gradient(ellipse 50% 40% at 8% 90%, rgba(240, 106, 150, .16), transparent 48%), linear-gradient(180deg, #fff5f8 0%, #fce8ef 100%);color-scheme:light}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-button{width:0;height:0;display:none}*::-webkit-scrollbar-track,*::-webkit-scrollbar-track-piece,*::-webkit-scrollbar-corner{background:transparent}*::-webkit-scrollbar-thumb{background-color:var(--scroll-thumb);background-clip:padding-box;border:2px solid transparent;border-radius:999px}*::-webkit-scrollbar-thumb:hover{background-color:var(--scroll-thumb-hover)}html,body,#root{margin:0;height:100%;min-height:100%;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}body{font-family:var(--font);color:var(--text);background:var(--body-bg);-webkit-font-smoothing:antialiased;transition:background var(--dur-med) var(--ease),color var(--dur) var(--ease)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}button,input{font:inherit}.shell.login-shell{min-height:100%;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(420px,100%);padding:2rem 1.5rem;border:1px solid var(--line);border-radius:20px;background:var(--glass);box-shadow:var(--shadow),var(--glow);backdrop-filter:saturate(1.35) blur(18px);-webkit-backdrop-filter:saturate(1.35) blur(18px);animation:rise-in .42s var(--ease)}.brand-mark{margin:0 0 .35rem;font-size:2rem;font-weight:700;letter-spacing:.04em;color:var(--brand)}.brand-mark.sm{font-size:1rem;opacity:.85}h1,h2{margin:0;font-weight:600;color:var(--text)}.login-card h1{font-size:1.45rem}.lead,.muted{color:var(--muted)}.lead{margin:.75rem 0 1.25rem;line-height:1.45}.muted{margin:.2rem 0 0;font-size:.9rem}label{display:grid;gap:.4rem;margin-bottom:1rem;color:var(--muted);font-size:.9rem}input{width:100%;padding:.85rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--input);color:var(--text);outline:none;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur) var(--ease)}input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.22)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;width:100%;margin-top:.35rem;padding:.85rem 1rem;border:none;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--accent-2),var(--accent));color:var(--on-accent);font-weight:600;cursor:pointer;box-shadow:0 8px 20px rgba(var(--accent-rgb),.28);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),filter var(--dur) var(--ease),opacity var(--dur) linear,background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 12px 28px rgba(var(--accent-rgb),.36)}.btn:active:not(:disabled){transform:translateY(0) scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--text);box-shadow:none}.btn.ghost:hover:not(:disabled){background:rgba(var(--accent-rgb),.1);border-color:rgba(var(--accent-rgb),.45);color:var(--text);box-shadow:none;filter:none}.btn.icon{width:2.6rem;height:2.6rem;min-width:2.6rem;margin:0;padding:0;border-radius:50%;box-shadow:none}.btn.icon:hover:not(:disabled){background:rgba(var(--accent-rgb),.16);color:var(--accent);box-shadow:none;filter:none}.btn.icon svg{transition:transform var(--dur) var(--ease),filter var(--dur) var(--ease)}.btn.icon:hover:not(:disabled) svg{transform:scale(1.08);filter:drop-shadow(0 0 6px rgba(var(--accent-rgb),.45))}.btn.accept{background:linear-gradient(135deg,#1f9d5a,#2dce7a)}.btn.hangup{background:linear-gradient(135deg,#c62828,#e53935)}.err{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-line);padding:.7rem .9rem;border-radius:10px;margin:0 0 1rem}.err.pad,.muted.pad{margin:.75rem 1rem}.link-status{margin:0;padding:.28rem .85rem;font-size:.75rem;line-height:1.3;color:var(--danger);background:var(--danger-bg);border-bottom:1px solid var(--danger-line)}.link-status.restoring{color:var(--muted);background:var(--glass);border-bottom-color:var(--line)}@media(min-width:861px){.messenger:has(.chat-pane) .sidebar .link-status{display:none}}.messenger{height:100%;display:grid;grid-template-columns:minmax(280px,360px) 1fr;max-width:1280px;margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);overflow:hidden}.sidebar{display:flex;flex-direction:column;border-right:1px solid var(--line);min-height:0;background:var(--surface)}.chat-list,.settings{flex:1;min-height:0;overflow:auto}.tabbar{display:grid;grid-template-columns:repeat(3,1fr);gap:.25rem;padding:.55rem .6rem calc(.55rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--glass);backdrop-filter:saturate(1.35) blur(16px);-webkit-backdrop-filter:saturate(1.35) blur(16px)}.tabbar button{border:none;background:transparent;color:var(--muted);padding:.55rem .35rem;border-radius:12px;cursor:pointer;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:.2rem;font-size:.72rem;letter-spacing:.01em;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur) var(--ease)}.tabbar button:hover{color:var(--text);background:rgba(var(--accent-rgb),.08)}.tabbar button svg{opacity:.9;transition:transform var(--dur) var(--ease),filter var(--dur) var(--ease),color var(--dur) var(--ease)}.tabbar button:hover svg{transform:translateY(-1px) scale(1.05)}.tabbar button.active{color:var(--accent);background:rgba(var(--accent-rgb),.14)}.tabbar button.active svg{color:var(--accent);filter:drop-shadow(0 0 8px rgba(var(--accent-rgb),.55))}.settings{padding:0}.settings form{margin-bottom:1rem;padding:1rem 1.1rem}.settings .btn{margin-top:.5rem}.btn.danger{border-color:var(--danger-line);color:var(--danger)}.ok{color:var(--ok);margin:.4rem 0 .6rem}.pad-inline{padding:0 0 .75rem}.hint{font-size:.85rem;line-height:1.4}.tiny{font-size:.75rem;margin:0;max-width:7rem;text-align:right}.call-btn{width:auto!important;margin:0!important;padding:.5rem .85rem!important;font-size:.88rem;gap:.4rem}.call-icon-btn{width:2.6rem!important;height:2.6rem!important;min-width:2.6rem!important;margin:0!important;padding:0!important;border-radius:50%!important;display:inline-grid!important;place-items:center;background:rgba(var(--accent-rgb),.16)!important;box-shadow:none!important}.call-icon-btn:hover{background:rgba(var(--accent-rgb),.28)!important;color:var(--accent)}.call-row-avatar{position:relative;flex-shrink:0}.call-kind-badge{position:absolute;right:-2px;bottom:-2px;width:1.15rem;height:1.15rem;border-radius:50%;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;border:2px solid var(--surface);box-shadow:0 2px 8px rgba(var(--accent-rgb),.35)}.call-kind-badge.video{background:var(--accent-2)}.avatar-img{border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(145deg,var(--avatar-from),var(--avatar-to));font-weight:700;flex-shrink:0;overflow:hidden;position:relative;color:var(--on-accent);line-height:1;vertical-align:middle;box-shadow:0 4px 14px rgba(var(--accent-rgb),.28)}.avatar-img.av-22{width:22px;height:22px;font-size:12px}.avatar-img.av-32{width:32px;height:32px;font-size:12px}.avatar-img.av-36{width:36px;height:36px;font-size:14px}.avatar-img.av-40{width:40px;height:40px;font-size:15px}.avatar-img.av-44{width:44px;height:44px;font-size:17px}.avatar-img.av-88{width:88px;height:88px;font-size:33px}.avatar-img.av-96{width:96px;height:96px;font-size:36px}.avatar-img img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block;z-index:2;background:var(--avatar-to)}.avatar-img.has-photo{color:transparent;background:var(--avatar-to)}.avatar-img.has-photo .avatar-fallback{display:none!important}.avatar-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;z-index:1}.settings-avatar-block{display:flex;align-items:center;gap:1rem;padding:.25rem 0 1rem}.settings-avatar-meta{display:flex;flex-direction:column;gap:.35rem;min-width:0}.settings-avatar-meta .btn{width:auto;margin:.25rem 0 0;padding:.45rem .8rem;font-size:.85rem}.chat-top-profile{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer;padding:0}.chat-top-profile:hover .chat-top-info h2{color:var(--sky)}.file-card{display:flex;align-items:center;gap:.65rem;padding:.55rem .65rem;border-radius:12px;background:color-mix(in srgb,var(--surface-3) 80%,transparent);color:inherit;text-decoration:none;min-width:12rem;max-width:100%;transition:background var(--dur) var(--ease),transform var(--dur) var(--ease)}.file-card:hover{transform:translateY(-1px)}.bubble.mine .file-card{background:#ffffff1f}.file-card-icon{width:2.4rem;height:2.4rem;border-radius:10px;background:rgba(var(--accent-rgb),.2);display:grid;place-items:center;flex-shrink:0}.file-card-meta{min-width:0;display:grid;gap:.1rem}.file-card-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-card-sub{font-size:.78rem;color:var(--muted)}.file-link{color:inherit;font-weight:600;display:inline-flex;align-items:center;gap:.4rem}.peer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:var(--overlay);display:grid;place-items:center;padding:1rem;animation:fade-in var(--dur-med) var(--ease)}.peer-sheet{width:min(420px,100%);max-height:min(90vh,760px);overflow:auto;border-radius:20px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);color:var(--text);animation:rise-in .38s var(--ease)}.peer-sheet-top{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem;border-bottom:1px solid var(--line)}.peer-sheet-top h2{margin:0;font-size:1rem}.peer-hero{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:1.35rem 1rem 1rem;text-align:center}.peer-hero h3{margin:.4rem 0 0;font-size:1.25rem}.tiny-inline{font-size:.85rem;margin:0}.peer-actions{display:flex;gap:.75rem;margin-top:.85rem}.peer-action{width:4.5rem!important;margin:0!important;padding:.65rem .4rem!important;flex-direction:column;gap:.25rem;font-size:.75rem;border-radius:14px!important;background:rgba(var(--accent-rgb),.14)!important}.peer-section{padding:.85rem 1.1rem 1rem;border-top:1px solid var(--line)}.peer-section h4{margin:0 0 .45rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.peer-section p{margin:0;line-height:1.45}.shared-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;margin-top:.5rem}.shared-cell{aspect-ratio:1;border-radius:10px;overflow:hidden;background:rgba(var(--accent-rgb),.1);display:grid;place-items:center;color:inherit;text-decoration:none}.shared-cell img{width:100%;height:100%;object-fit:cover}.shared-cell.file{flex-direction:column;gap:.25rem;font-size:.7rem;color:var(--muted);padding:.4rem;text-align:center}.composer .attach{flex-shrink:0}.send-btn{width:auto;margin:0;min-width:2.8rem;padding:.75rem .95rem;border-radius:14px}.send-label{display:inline}.call-kind{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;margin:0 auto .35rem}.btn.icon-lg{width:auto;min-width:7.5rem;flex-direction:column;gap:.3rem;padding:.75rem 1rem;font-size:.8rem}.btn.icon-lg svg{width:24px;height:24px}.file-input{display:none}.bubble-media{display:block;max-width:100%;max-height:280px;border-radius:10px;margin-bottom:.35rem}.media-card{display:block;width:max-content;max-width:100%;margin:0;padding:0;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:zoom-in}.media-card .bubble-media{margin-bottom:0}html.photo-open{overflow:hidden}.photo-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:grid;place-items:center;padding:3.4rem 4.2rem 3.2rem;background:#02060ee0;animation:fade-in var(--dur-med) var(--ease)}.photo-viewer-img{max-width:min(94vw,1120px);max-height:min(86vh,860px);width:auto;height:auto;object-fit:contain;border-radius:14px;box-shadow:var(--shadow-lg);animation:rise-in .32s var(--ease)}.photo-viewer-close{position:absolute;top:.85rem;right:.85rem;z-index:1;background:var(--glass)!important;box-shadow:var(--shadow-sm)!important}.photo-viewer-nav{position:absolute;top:50%;z-index:1;background:var(--glass)!important;box-shadow:var(--shadow-sm)!important;transform:translateY(-50%)}.photo-viewer-nav.prev{left:.75rem}.photo-viewer-nav.next{right:.75rem}.photo-viewer-nav:hover:not(:disabled){transform:translateY(-50%) scale(1.06);filter:none}.photo-viewer-count{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);margin:0;padding:.28rem .75rem;border-radius:999px;background:var(--glass);color:#fff;font-size:.78rem;font-weight:600;letter-spacing:.02em}button.shared-cell{border:none;padding:0;cursor:zoom-in;font:inherit;color:inherit}.file-link{color:inherit;font-weight:600}@media(min-width:861px){.messenger{margin:.9rem auto;height:calc(100% - 1.8rem);max-width:min(1280px,calc(100% - 1.8rem));border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-lg)}}@media(max-width:860px){.messenger{grid-template-columns:1fr;border:none;max-width:none}.sidebar.hide-mobile,.main.hide-mobile-main{display:none}.main.show-mobile{display:flex;height:100%}.mobile-only{display:inline-flex}.call-actions{flex-direction:column;gap:.3rem}.call-btn{min-width:auto;padding:.45rem .6rem!important;font-size:.75rem}.send-label{display:none}.send-btn{min-width:2.8rem;padding:.75rem}.photo-viewer{padding:3.2rem .5rem 3rem}.photo-viewer-nav.prev{left:.3rem}.photo-viewer-nav.next{right:.3rem}}.side-top,.chat-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.1rem;border-bottom:1px solid var(--line);background:var(--glass);backdrop-filter:saturate(1.35) blur(16px);-webkit-backdrop-filter:saturate(1.35) blur(16px)}.chat-list{list-style:none;margin:0;padding:.25rem 0 1.5rem;overflow:auto;background:var(--surface)}.chat-row{width:100%;display:flex;align-items:center;gap:.85rem;padding:.85rem 1.1rem;border:none;background:transparent;color:var(--text);text-align:left;cursor:pointer;border-bottom:1px solid var(--line);transition:background var(--dur) var(--ease)}.chat-row:hover,.chat-row.active{background:var(--row-hover)}.avatar{width:2.6rem;height:2.6rem;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,var(--avatar-from),var(--avatar-to));font-weight:700;flex-shrink:0}.chat-meta{min-width:0;flex:1;display:grid;gap:.15rem}.chat-title-row{display:flex;justify-content:space-between;gap:.5rem}.chat-title{font-weight:600}.chat-time{color:var(--muted);font-size:.75rem;flex-shrink:0}.chat-preview{color:var(--muted);font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{min-width:1.4rem;height:1.4rem;padding:0 .35rem;border-radius:999px;background:var(--accent);color:var(--badge-ink);font-size:.75rem;font-weight:700;display:grid;place-items:center;box-shadow:0 4px 12px rgba(var(--accent-rgb),.38)}.empty{padding:1.5rem 1.2rem;color:var(--muted)}.main{min-width:0;min-height:0;display:flex;flex-direction:column}.empty-main{flex:1;display:grid;place-content:center;text-align:center;padding:2rem;opacity:.9}.chat-pane{height:100%;display:flex;flex-direction:column;min-height:0;position:relative}.drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:24;display:grid;place-items:center;pointer-events:none;background:color-mix(in srgb,var(--accent) 16%,var(--overlay));border:2px dashed var(--accent);color:var(--text);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.drop-overlay p{margin:0;padding:.85rem 1.25rem;border-radius:999px;background:var(--glass);box-shadow:var(--shadow-md);font-weight:600;letter-spacing:.01em}.chat-pane.is-drop .messages,.chat-pane.is-drop .composer{filter:saturate(.85)}.chat-top-info{min-width:0;flex:1}.chat-top-info h2{font-size:1.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.call-actions{display:flex;gap:.4rem}.messages{flex:1;overflow:auto;overflow-anchor:none;padding:1rem 1.1rem 1.25rem;display:flex;flex-direction:column;gap:.45rem;background-color:var(--panel);background-image:radial-gradient(ellipse 80% 45% at 50% -8%,var(--chat-wash),transparent 60%),radial-gradient(circle at 1px 1px,rgba(var(--accent-rgb),.18) 1px,transparent 0);background-size:auto,22px 22px}.system-line{align-self:center;max-width:min(90%,420px);text-align:center;color:var(--muted);font-size:.85rem;padding:.4rem .85rem;line-height:1.35}.day-chip{align-self:center;margin:.45rem 0 .15rem;padding:.18rem .78rem;border-radius:999px;background:var(--glass);color:var(--muted);font-size:.7rem;font-weight:600;line-height:1.3;letter-spacing:.02em;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-sm);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line)}.bubble-wrap{display:flex;align-items:flex-end;gap:.45rem;width:fit-content;max-width:min(78%,560px);min-width:0}.bubble-wrap.mine{align-self:flex-end;margin-left:auto;flex-direction:row-reverse}.bubble-wrap.theirs{align-self:flex-start;margin-right:auto}.bubble-wrap.selected .bubble{outline:2px solid rgba(var(--accent-rgb),.55);box-shadow:var(--glow)}.bubble{box-sizing:border-box;width:max-content;max-width:100%;min-width:4.75rem;flex:0 1 auto;padding:.55rem .8rem .35rem;border-radius:18px;line-height:1.45;overflow-wrap:break-word;word-break:normal;cursor:text;user-select:text;-webkit-user-select:text}@media(hover:none)and (pointer:coarse){.bubble{cursor:context-menu;user-select:none;-webkit-user-select:none}}.messages.is-selecting .bubble{cursor:pointer;user-select:none;-webkit-user-select:none}.bubble.mine{background:var(--bubble-mine);color:var(--on-accent);border-bottom-right-radius:6px;box-shadow:0 8px 18px rgba(var(--accent-rgb),.28)}.bubble.theirs{background:var(--bubble-theirs);border:1px solid var(--line);color:var(--text);border-bottom-left-radius:6px;box-shadow:var(--shadow-sm)}.bubble.deleted{opacity:.7;font-style:italic;min-width:8rem}.bubble-text{white-space:pre-wrap;overflow-wrap:break-word;word-break:normal}.bubble-text::selection,.reply-quote::selection{background:rgba(var(--accent-rgb),.38);color:inherit}.bubble.mine .bubble-text::selection,.bubble.mine .reply-quote::selection{background:#ffffff61}.bubble-time{margin-top:.2rem;font-size:.7rem;opacity:.72;text-align:right;display:flex;align-items:center;justify-content:flex-end;gap:.28rem;white-space:nowrap;flex-wrap:nowrap;width:100%;min-width:3.5rem;user-select:none;-webkit-user-select:none}.select-dot{width:1.35rem;height:1.35rem;border-radius:50%;border:1.5px solid rgba(var(--accent-rgb),.55);background:transparent;color:var(--on-accent);display:grid;place-items:center;padding:0;flex-shrink:0;cursor:pointer}.select-dot.on{background:var(--accent);border-color:var(--accent);color:var(--badge-ink)}.fwd-label,.reply-quote{font-size:.78rem;margin-bottom:.35rem;padding-left:.45rem;border-left:2px solid rgba(255,255,255,.45)}.bubble.theirs .fwd-label,.bubble.theirs .reply-quote{border-left-color:var(--accent)}.reply-quote{display:grid;gap:.1rem;opacity:.92}.reply-quote-kind{font-weight:700;color:#ffffffe6}.bubble.theirs .reply-quote-kind{color:var(--accent)}.react-chips{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.35rem}.react-chip{border:1px solid rgba(255,255,255,.18);background:#03102847;color:inherit;border-radius:999px;padding:.12rem .45rem;font-size:.78rem;cursor:pointer;transition:transform var(--dur) var(--ease),background var(--dur) var(--ease)}.react-chip:hover{transform:scale(1.06)}.bubble.theirs .react-chip{background:rgba(var(--accent-rgb),.1);border-color:var(--line)}.react-chip.me{background:#ffffff38}.bubble.theirs .react-chip.me{background:rgba(var(--accent-rgb),.22)}.delivery.read{color:var(--read-tick);opacity:1}.delivery.delivered{opacity:.95}.delivery.sending{opacity:.4}.delivery-retry{margin:0;padding:0 .15rem;border:0;background:transparent;color:#ff6b6b;font-size:.85rem;font-weight:700;line-height:1;cursor:pointer}.pin-banner,.composer-banner,.select-bar{display:flex;align-items:center;gap:.55rem;padding:.55rem .9rem;border-bottom:1px solid var(--line);background:var(--header);color:var(--text)}.composer-banner{border-bottom:none;border-top:1px solid var(--line)}.select-bar{border-top:1px solid var(--line);border-bottom:none;justify-content:space-between}.pin-banner-text,.composer-banner>div{flex:1;min-width:0;display:grid;gap:.1rem;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}.pin-banner-text span,.composer-banner span{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.85rem}.select-bar .btn{width:auto;margin:0;padding:.45rem .7rem}.msg-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#02081459}.msg-menu{position:fixed;z-index:51;width:min(260px,calc(100vw - 1.5rem));display:grid;gap:.45rem}.msg-react-bar{display:flex;gap:.15rem;padding:.35rem .4rem;border-radius:999px;background:#141820f0;border:1px solid rgba(255,255,255,.08);box-shadow:0 12px 32px #00000059;overflow-x:auto}.msg-react-btn{border:none;background:transparent;font-size:1.25rem;width:2rem;height:2rem;border-radius:50%;cursor:pointer}.msg-react-btn:hover{background:#ffffff1a}.msg-menu-card{border-radius:14px;background:#1c1c1ef5;border:1px solid rgba(255,255,255,.08);box-shadow:0 16px 40px #0006;overflow:hidden;padding:.25rem 0}.msg-menu-item{width:100%;display:flex;align-items:center;gap:.75rem;padding:.72rem .95rem;border:none;background:transparent;color:#f2f2f7;font:inherit;text-align:left;cursor:pointer}.msg-menu-item:hover{background:#ffffff14}.msg-menu-item.danger{color:#ff6369}.msg-menu-meta{display:flex;align-items:center;gap:.35rem;padding:.55rem .95rem .65rem;margin-top:.15rem;border-top:1px solid rgba(255,255,255,.08);color:#f2f2f78c;font-size:.78rem}.msg-menu-meta .read{color:#64d2ff}.forward-sheet{max-height:min(70vh,520px)}.compose-fab{width:2.4rem!important;height:2.4rem!important;min-width:2.4rem!important;margin:0!important;padding:0!important;border-radius:50%!important;font-size:1.4rem;line-height:1;display:grid!important;place-items:center;box-shadow:0 8px 20px rgba(var(--accent-rgb),.4)!important}.compose-sheet{width:min(460px,100%);max-height:min(92vh,780px)}.compose-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;padding:.75rem 1rem 0}.compose-modes button{border:1px solid var(--line);background:var(--surface-2);color:var(--muted);border-radius:10px;padding:.55rem .4rem;font-weight:600;cursor:pointer}.compose-form{display:grid;gap:.7rem;padding:.9rem 1rem 1.2rem}.compose-form label{display:grid;gap:.3rem;font-size:.85rem;color:var(--muted)}.compose-form input[type=text],.compose-form input:not([type]),.compose-form input[type=search],.add-members input,.group-edit input{width:100%;padding:.65rem .75rem;border-radius:10px;border:1px solid var(--line);background:#030c1ca6;color:var(--text);font:inherit}.compose-check{display:flex!important;align-items:center;gap:.5rem;grid-template-columns:none!important}.compose-user-list{max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:12px}.compose-user{width:100%;display:flex;align-items:center;gap:.65rem;padding:.55rem .7rem;border:none;border-bottom:1px solid var(--line);background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}.compose-user:last-child{border-bottom:none}.compose-user.on,.compose-user:hover{background:rgba(var(--accent-rgb),.1)}.compose-user-meta{flex:1;min-width:0;display:grid;gap:.05rem}.compose-check-mark{width:1.2rem;text-align:center;color:var(--sky);font-weight:700}.peer-section-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.45rem}.peer-section-head h4{margin:0}.member-list{list-style:none;margin:0 0 .75rem;padding:0;display:grid;gap:.35rem}.member-row{display:flex;align-items:center;gap:.55rem;padding:.35rem 0}.member-actions{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end}.link-btn.danger{color:#ff8b8b}.group-edit{display:grid;gap:.55rem}.group-edit-actions{display:flex;gap:.5rem}.group-edit-actions .btn{width:auto;margin:0}.add-members{display:grid;gap:.35rem;margin-bottom:.65rem}.sender{font-size:.75rem;color:var(--sky);margin-bottom:.2rem;user-select:none;-webkit-user-select:none}.composer{display:flex;gap:.55rem;padding:.85rem 1rem 1.1rem;border-top:1px solid var(--line);background:var(--glass);backdrop-filter:saturate(1.35) blur(16px);-webkit-backdrop-filter:saturate(1.35) blur(16px)}.composer input{flex:1}.composer .btn{width:auto;margin:0}.composer .send-btn{min-width:7rem}.composer .btn.icon{min-width:2.6rem;width:2.6rem;height:2.6rem}.voice-mic{width:2.8rem;min-width:2.8rem;height:2.8rem;padding:0;margin:0;border-radius:50%;color:var(--accent);background:rgba(var(--accent-rgb),.14);box-shadow:none}.composer .voice-mic{min-width:2.8rem}.voice-mic:hover{background:rgba(var(--accent-rgb),.22);color:var(--accent)}.rec-bar{display:flex;align-items:center;gap:.55rem;padding:.85rem 1rem 1.1rem;border-top:1px solid var(--line);background:var(--glass);backdrop-filter:saturate(1.35) blur(16px);-webkit-backdrop-filter:saturate(1.35) blur(16px)}.rec-bar .voice-wave{flex:1;min-width:0;height:1.6rem}.rec-bar .btn{width:auto;margin:0}.rec-bar .btn.icon{min-width:2.6rem;width:2.6rem;height:2.6rem}.rec-bar .rec-send{min-width:2.8rem;padding:.75rem}.rec-dot{width:.55rem;height:.55rem;flex-shrink:0;border-radius:50%;background:var(--danger);animation:rec-pulse 1.1s ease-in-out infinite}.bubble:has(.voice-bubble){min-width:min(100%,16.5rem);width:min(100%,18.5rem)}.voice-bubble{display:flex;align-items:center;gap:.45rem;min-width:0}.voice-play,.voice-rate{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;margin:0;padding:0;border:none;cursor:pointer;color:inherit;background:#ffffff29}.voice-play{width:2.15rem;height:2.15rem;border-radius:50%}.voice-rate{min-width:2.15rem;height:1.45rem;padding:0 .4rem;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.01em}.bubble.theirs .voice-play,.bubble.theirs .voice-rate{color:var(--accent);background:rgba(var(--accent-rgb),.12)}.voice-wave{display:block;flex:1;min-width:4.5rem;height:1.5rem}.voice-wave.seekable{cursor:pointer}.voice-wave .on{fill:currentColor}.voice-wave .off{fill:currentColor;opacity:.34}.voice-time{flex-shrink:0;font-variant-numeric:tabular-nums;font-size:.75rem;opacity:.9}.mobile-only{display:none}.call-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:1rem;background:var(--overlay);animation:fade-in var(--dur-med) var(--ease)}.call-card{width:min(520px,100%);padding:1.5rem;border-radius:20px;border:1px solid var(--line);background:var(--surface);color:var(--text);text-align:center;box-shadow:var(--shadow);animation:rise-in .38s var(--ease)}.call-hint{margin:.35rem 0 0;font-size:.9rem;line-height:1.4}.call-videos{position:relative;margin:1rem 0;border-radius:14px;overflow:hidden;background:var(--call-stage);aspect-ratio:16 / 10}.call-videos.audio-only{aspect-ratio:auto;height:0;margin:.5rem 0;overflow:hidden}.remote-video,.local-video{width:100%;height:100%;object-fit:cover;background:var(--call-stage);pointer-events:none}.local-video{position:absolute;right:.6rem;bottom:.6rem;width:28%;height:auto;aspect-ratio:3 / 4;border-radius:10px;border:1px solid var(--line);object-fit:cover}.call-controls{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.call-controls .btn{width:auto;min-width:7rem;margin:0}.tab-avatar{border:1.5px solid rgba(var(--accent-rgb),.45)}.settings-menu{display:flex;flex-direction:column;gap:1rem;padding:1rem 1rem 1.5rem;isolation:isolate}.settings-hero{display:flex;flex-direction:column;align-items:center;gap:.3rem;text-align:center;padding:.75rem .5rem .5rem;flex-shrink:0}.settings-hero strong{margin-top:.45rem;font-size:1.15rem}.link-btn{border:none;background:transparent;color:var(--sky);font-weight:600;cursor:pointer;padding:.35rem .5rem;margin-top:.25rem}.settings-group{display:flex;flex-direction:column;flex-shrink:0;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);overflow:clip;position:relative;z-index:0}.settings-row{width:100%;min-height:3.1rem;display:flex;align-items:center;gap:.75rem;padding:.75rem .9rem;margin:0;border:none;border-bottom:1px solid var(--line);border-radius:0;background:var(--surface-2);color:var(--text);text-align:left;text-decoration:none;cursor:pointer;font:inherit;-moz-appearance:none;appearance:none;-webkit-appearance:none;position:relative;z-index:1;box-sizing:border-box;transition:background var(--dur) var(--ease)}.settings-group .settings-row:last-child{border-bottom:none}.settings-row:hover{background:var(--row-hover)}.settings-row-icon{width:1.75rem;height:1.75rem;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;box-shadow:0 4px 10px #0000002e}.settings-row-icon.tone-rose{background:#e5484d}.settings-row-icon.tone-green{background:#30a46c}.settings-row-icon.tone-gray{background:#8b8d98}.settings-row-icon.tone-accent{background:var(--accent)}.settings-row-icon.tone-violet{background:#8e4ec6}.settings-row-icon.tone-orange{background:#f76b15}.settings-row-title{flex:1;font-weight:600;line-height:1.25}.settings-row-value{color:var(--muted);font-size:.9rem;flex-shrink:0}.settings-row-chevron{color:var(--muted);opacity:.7;flex-shrink:0}.settings-logout{margin-top:.25rem;flex-shrink:0}.settings-detail{display:flex;flex-direction:column;height:100%;min-height:0}.empty-settings{display:grid;place-content:center;gap:.75rem;padding:2rem;text-align:center}.settings-detail-actions{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}.settings-detail-actions .btn{width:auto;margin:0}.settings-screen{display:flex;flex-direction:column;height:100%;min-height:0}.settings-screen-top{display:flex;align-items:center;gap:.5rem;padding:.85rem 1rem;border-bottom:1px solid var(--line)}.settings-screen-top h2{margin:0;font-size:1.05rem}.settings-screen-body{padding:1rem 1.1rem 1.5rem;overflow:auto}.settings-card,.settings-form-card{display:grid;gap:.75rem;max-width:420px;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);color:var(--text)}.settings-card a{color:var(--sky);font-weight:600}.settings-form-card label{display:grid;gap:.35rem;font-size:.85rem;color:var(--muted)}.settings-form-card input{width:100%;padding:.7rem .8rem;border-radius:10px;border:1px solid var(--line);background:var(--input);color:var(--text)}.settings-kv{display:flex;justify-content:space-between;gap:1rem}.theme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}.theme-card{display:grid;gap:.45rem;border:none;background:transparent;padding:0;cursor:pointer;color:var(--muted);font:inherit;text-align:center}.theme-card-preview{display:grid;gap:6px;height:88px;padding:8px;border-radius:14px;border:1.5px solid var(--line);overflow:hidden;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.theme-card:hover .theme-card-preview{transform:translateY(-2px);box-shadow:var(--shadow-md)}.theme-card.active .theme-card-preview{border-color:var(--accent);box-shadow:var(--glow)}.theme-card-bar,.theme-card-row{display:block;height:8px;border-radius:999px}.theme-card-row{width:72%;height:6px;opacity:.85}.theme-card-bubble{display:block;width:42%;height:14px;margin-left:auto;border-radius:8px 8px 4px}.theme-card-label{font-size:.82rem;font-weight:600;color:var(--text)}.theme-card-light .theme-card-preview{background:#fff}.theme-card-light .theme-card-bar{background:#f2f2f7}.theme-card-light .theme-card-row{background:#e5e5ea}.theme-card-light .theme-card-bubble{background:#2aabee}.theme-card-dark .theme-card-preview{background:#0b0b0c}.theme-card-dark .theme-card-bar{background:#1c1c1e}.theme-card-dark .theme-card-row{background:#2c2c2e}.theme-card-dark .theme-card-bubble{background:#0a84ff}.theme-card-pink .theme-card-preview{background:#fff5f8}.theme-card-pink .theme-card-bar{background:#ffe4ec}.theme-card-pink .theme-card-row{background:#f8d4de}.theme-card-pink .theme-card-bubble{background:#e84a7f}.theme-card-system .theme-card-preview{background:linear-gradient(90deg,#fff 50%,#0b0b0c 50%)}.theme-card-system .theme-card-bar{background:linear-gradient(90deg,#f2f2f7 50%,#1c1c1e 50%)}.theme-card-system .theme-card-row{background:linear-gradient(90deg,#e5e5ea 50%,#2c2c2e 50%)}.theme-card-system .theme-card-bubble{background:linear-gradient(90deg,#2aabee 50%,#5ac8fa 50%)}.main{background:var(--panel);color:var(--text)}.settings-card,.settings-form-card{background:var(--surface-2)!important;border-color:var(--line)!important;color:var(--text)}.settings-screen-top,.pin-banner,.composer-banner,.select-bar{background:var(--glass)!important;border-color:var(--line)!important;color:var(--text);backdrop-filter:saturate(1.3) blur(14px);-webkit-backdrop-filter:saturate(1.3) blur(14px)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rec-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.86)}}@keyframes rise-in{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}.compose-modes button{background:var(--surface-2);color:var(--muted);border-color:var(--line)}.compose-modes button.active{color:var(--text);background:var(--row-hover);border-color:var(--sky)}.compose-user-list,.add-members input,.group-edit input,.compose-form input[type=text],.compose-form input:not([type]),.settings-form-card input{background:var(--input)!important;color:var(--text)!important;border-color:var(--line)!important}.compose-user{color:var(--text);border-bottom-color:var(--line)}.compose-user.on,.compose-user:hover{background:var(--row-hover)}.msg-menu-backdrop{background:var(--overlay)}.link-btn.danger{color:var(--danger)}.compose-modes button,.compose-user,.shared-cell,.chat-top-profile{transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease),color var(--dur) var(--ease)}.shared-cell:hover{transform:scale(1.03)}.local-video{box-shadow:var(--shadow-md)}.status-online{color:var(--online);font-weight:600}.muted.status-online,.tiny-inline.status-online{color:var(--online)}.spin{display:inline-block;width:1rem;height:1rem;border:2px solid rgba(var(--accent-rgb),.25);border-top-color:var(--accent);border-radius:50%;font-size:0;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
