:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#0e1621;--chat-bg:#0e1621;--pattern:#182533;--panel:#17212b;--panel-strong:#1f2c38;--bubble:#182533;--bubble-mine:#2b5278;--bubble-mine-strong:#3a73a6;--text:#f5f7fb;--muted:#8fa1b3;--muted-strong:#aebac9;--border:#ffffff14;--border-soft:#ffffff0a;--accent:#2aabee;--accent-strong:#229ed9;--danger:#ff8f8f;--success:#7ee0a1;--shadow-lg:0 24px 60px #00000073;--shadow-md:0 12px 28px #00000047;--radius-bubble:1.1rem;--radius-panel:1.25rem}*{box-sizing:border-box}html,body{height:100%}body{background:radial-gradient(circle at 18% 8%, #2aabee38, transparent 28rem), radial-gradient(circle at 80% 92%, #2b527838, transparent 30rem), var(--background);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Inter,SF Pro Text,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}button,input,textarea{font:inherit;color:inherit}button{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#fff;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:.45rem;padding:.7rem 1.1rem;font-weight:600;transition:background .16s,box-shadow .16s,transform .12s,opacity .16s;display:inline-flex;box-shadow:0 10px 26px #2aabee40}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 30px #2aabee52}button:active:not(:disabled){transform:translateY(0)}button:disabled{cursor:not-allowed;opacity:.55}input,textarea{border:1px solid var(--border);background:#0f1821eb;border-radius:1rem;outline:none;width:100%;padding:.85rem 1rem;transition:border-color .16s,box-shadow .16s}input:focus,textarea:focus{border-color:#2aabeeb3;box-shadow:0 0 0 3px #2aabee2e}textarea{resize:none;min-height:2.85rem}.shell{width:min(1120px,100% - 2rem);margin:0 auto;padding:2rem 0}.shell-chat{flex-direction:column;width:100%;max-width:980px;height:100dvh;margin:0 auto;padding:0;display:flex;position:relative}.shell-focused{max-width:480px;min-height:100dvh;padding:calc(1.5rem + env(safe-area-inset-top,0px)) 0 calc(1.5rem + env(safe-area-inset-bottom,0px));justify-content:center;align-items:center;display:flex}.shell-focused>.panel{width:100%}.hero{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:1.5rem;margin-bottom:1.5rem;display:grid}.panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:var(--shadow-lg);background:#17212beb;padding:1.25rem}.stack{gap:.9rem;display:grid}.row{justify-content:space-between;align-items:center;gap:.8rem;display:flex}.muted{color:var(--muted)}.muted.small{font-size:.78rem}.danger{color:var(--danger);background:#ff8f8f1f;border:1px solid #ff8f8f38;border-radius:999px;margin:0 0 .75rem;padding:.6rem .95rem}.success{color:var(--success);background:#7ee0a11f;border:1px solid #7ee0a133;border-radius:999px;margin:0 0 .75rem;padding:.6rem .95rem}.eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.8rem;font-weight:800}.invite-box{overflow-wrap:anywhere}.shell-chat>.toast{pointer-events:none;text-align:center;max-width:min(560px,100% - 2rem);left:50%;top:calc(64px + env(safe-area-inset-top,0px) + .5rem);z-index:80;width:max-content;margin:0;animation:.22s toast-pop;position:fixed;transform:translate(-50%)}@media (max-width:720px){.shell-chat>.toast{top:calc(58px + env(safe-area-inset-top,0px) + .5rem)}}@keyframes toast-pop{0%{opacity:0;transform:translate(-50%)translateY(-12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.avatar{color:#fff;letter-spacing:.02em;text-transform:uppercase;-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex;overflow:hidden}.avatar-image{background:#ffffff0d}.avatar-image img{object-fit:cover;width:100%;height:100%;display:block}.avatar-spacer{flex-shrink:0;width:32px;height:32px;display:inline-block}.avatar-button{box-shadow:none;background:0 0;border-radius:50%;width:auto;height:auto;margin:0;padding:0;transition:opacity .15s;display:inline-flex;position:relative}.avatar-button:hover:not(:disabled){box-shadow:none;background:0 0;transform:none}.avatar-button:hover:not(:disabled) .avatar-edit-overlay,.avatar-button:focus-visible .avatar-edit-overlay{opacity:1}.avatar-button.busy{opacity:.6;cursor:progress}.avatar-edit-overlay{color:#fff;bottom:0;opacity:0;pointer-events:none;background:#00000073;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.avatar-edit-overlay svg{fill:currentColor;width:38%;height:38%}.chat{flex:1;min-height:0;display:flex}.chat>.panel{-webkit-backdrop-filter:none;backdrop-filter:none;flex-direction:column;flex:1;width:100%;min-height:0;padding:0;display:flex;position:relative;overflow:hidden}.chat-header{-webkit-backdrop-filter:saturate(200%)blur(28px);backdrop-filter:saturate(200%)blur(28px);z-index:30;padding:calc(.7rem + env(safe-area-inset-top,0px)) 1rem .7rem;background:#111b276b;border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:.75rem;display:flex;position:absolute;top:0;left:0;right:0}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.chat-header{background:#111b27f5}}.chat-header-info{align-items:center;gap:.75rem;min-width:0;display:flex}.chat-header-avatar{box-shadow:none;color:#fff;background:linear-gradient(135deg,#50a8eb,#3a7eb8);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;margin:0;padding:0;display:inline-flex;position:relative;overflow:hidden}.chat-header-avatar.has-image{background:#ffffff0d}.chat-header-avatar svg{fill:currentColor;width:22px;height:22px}.chat-header-picture{object-fit:cover;width:100%;height:100%;display:block}button.chat-header-avatar.editable{cursor:pointer}button.chat-header-avatar.editable:hover:not(:disabled){box-shadow:var(--shadow-md);transform:none}button.chat-header-avatar.editable:hover:not(:disabled) .avatar-edit-overlay,button.chat-header-avatar.editable:focus-visible .avatar-edit-overlay{opacity:1}button.chat-header-avatar.editable.busy{cursor:progress;opacity:.7}.chat-header-text{gap:.1rem;min-width:0;display:grid}.chat-header-text h2{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1.02rem;line-height:1.15;overflow:hidden}.chat-header-subtitle{color:var(--muted);align-items:center;gap:.4rem;font-size:.82rem;line-height:1.2;display:inline-flex}.chat-header-actions{align-items:center;gap:.5rem;display:flex}.icon-button{box-shadow:none;color:var(--text);background:#ffffff0f;border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;padding:0;display:inline-flex}.icon-button:hover:not(:disabled){box-shadow:none;background:#ffffff1f;transform:none}.icon-button svg{fill:currentColor;width:1.2rem;height:1.2rem}.icon-button.small{width:2rem;height:2rem}.icon-button.small svg{width:1rem;height:1rem}.icon-button.danger{color:var(--danger)}.icon-button.danger:hover:not(:disabled){background:#ff6b812e}.icon-button:disabled{cursor:not-allowed;opacity:.45}.ghost-button{border:1px solid var(--border);box-shadow:none;color:var(--text);background:#ffffff0d}.ghost-button:hover:not(:disabled){box-shadow:none;background:#ffffff1a;transform:none}.family-menu-wrap{position:relative}.family-menu{z-index:30;background:#17212bfa;border-radius:1rem;width:min(380px,100vw - 2rem);position:absolute;top:calc(100% + .55rem);right:0}.family-menu-top{align-items:center;gap:.7rem;display:flex}.family-menu-account{gap:.15rem;display:grid}.family-users{border-top:1px solid var(--border);gap:.55rem;padding-top:.85rem;display:grid}.family-users h3{margin:0;font-size:.92rem}.family-user{border:1px solid var(--border);background:#ffffff0b;border-radius:.9rem;align-items:flex-start;gap:.6rem;padding:.65rem .7rem;display:flex}.family-user-info{flex:1;gap:.15rem;min-width:0;display:grid}.family-user-actions{flex-direction:column;flex-shrink:0;gap:.35rem;display:flex}.family-user-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.family-user-top strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.family-user-devices{margin-top:.15rem}.family-user-devices>summary{cursor:pointer;list-style:none}.family-user-devices>summary::-webkit-details-marker{display:none}.family-user-devices>summary:before{content:"▸ ";margin-right:.15rem;transition:transform .12s;display:inline-block}.family-user-devices[open]>summary:before{transform:rotate(90deg)}.family-user-devices ul{gap:.15rem;margin:.3rem 0 0;padding:0;list-style:none;display:grid}.presence-badge{letter-spacing:.02em;text-transform:uppercase;border-radius:999px;flex-shrink:0;padding:.18rem .5rem;font-size:.7rem;font-weight:700}.presence-badge.online{color:var(--success);background:#7ee0a12e}.presence-badge.offline{color:var(--muted);background:#aab3d124}.presence-badge.writing{color:var(--accent);background:#2aabee2e}.chat-body{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.password-field{position:relative}.password-field input{width:100%;padding-right:5.5rem}.password-reveal{color:#6ec1ffd9;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.35rem .7rem;font-size:.78rem;font-weight:600;transition:background-color .12s,color .12s;position:absolute;top:50%;right:.4rem;transform:translateY(-50%)}.password-reveal:hover{color:#6ec1ff;background:#6ec1ff24}.password-reveal:focus-visible{outline-offset:1px;background:#6ec1ff2e;outline:2px solid #6ec1ff8c}.push-banner{color:#f5f7fb;background:linear-gradient(135deg,#6ec1ff38,#4090e024);border:1px solid #6ec1ff38;border-radius:.85rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem;margin-bottom:.65rem;padding:.75rem .95rem;font-size:.85rem;display:flex}.push-banner-text{flex-direction:column;flex:1;gap:.2rem;min-width:14rem;display:flex}.push-banner-text strong{color:#6ec1ff;font-size:.9rem;font-weight:600}.push-banner-text span{color:#f5f7fbc7;line-height:1.35}.push-banner-actions{flex-shrink:0;gap:.4rem;display:flex}.push-banner-enable{color:#0b1118;cursor:pointer;background:#2aabee;border:none;border-radius:999px;padding:.4rem .9rem;font-size:.8rem;font-weight:600;transition:background-color .12s,transform .12s}.push-banner-enable:hover:not(:disabled){background:#6ec1ff}.push-banner-enable:disabled{cursor:progress;opacity:.7}.push-banner-dismiss{color:#f5f7fbc7;cursor:pointer;background:0 0;border:1px solid #f5f7fb2e;border-radius:999px;padding:.4rem .9rem;font-size:.8rem;transition:border-color .12s,color .12s}.push-banner-dismiss:hover{color:#f5f7fb;border-color:#f5f7fb73}.messages{min-height:0;padding:calc(1rem + 64px + env(safe-area-inset-top,0px)) 1.1rem 1.1rem;scrollbar-color:#8fa1b359 transparent;scrollbar-width:thin;background-color:#0e1621;background-image:radial-gradient(#ffffff0d 1px,#0000 1px),radial-gradient(#2aabee0d 1px,#0000 1px),radial-gradient(circle at 20% 12%,#2aabee12,#0000 18rem),radial-gradient(circle at 80% 88%,#2b52782e,#0000 22rem);background-position:0 0,14px 14px,0 0,0 0;background-size:28px 28px,28px 28px,auto,auto;flex-direction:column;flex:1;gap:.15rem;display:flex;overflow-y:auto}.messages::-webkit-scrollbar{width:8px}.messages::-webkit-scrollbar-thumb{background:#8fa1b347;border-radius:999px}.messages::-webkit-scrollbar-thumb:hover{background:#8fa1b373}.messages-empty,.messages-loading{color:var(--muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.6rem;display:flex}.messages-empty-icon{opacity:.6;font-size:2.4rem}.messages-loading p{margin:0}.spinner{border:2px solid #ffffff1f;border-top-color:var(--accent);border-radius:50%;width:1.5rem;height:1.5rem;animation:.8s linear infinite spinner-rotate;display:inline-block}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.day-separator{align-self:center;margin:.85rem 0 .5rem}.day-separator span{color:#f5f7fbd9;letter-spacing:.02em;text-transform:capitalize;background:#0f1821d9;border-radius:999px;padding:.28rem .85rem;font-size:.74rem;font-weight:600}.message-row{align-items:flex-end;gap:.5rem;margin-top:.18rem;animation:.18s ease-out both bubble-in;display:flex}.message-row.theirs{justify-content:flex-start}.message-row.mine{justify-content:flex-end}.message-row.tail{margin-bottom:.32rem}.message-row.tail+.message-row:not(.grouped){margin-top:.55rem}@keyframes bubble-in{0%{opacity:0;transform:translateY(6px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.message{-webkit-touch-callout:none;background:var(--bubble);border-radius:var(--radius-bubble);touch-action:pan-y;-webkit-user-select:text;user-select:text;word-break:break-word;border:0;max-width:min(72%,560px);padding:.4rem .62rem .42rem;position:relative;box-shadow:0 1px #0000002e}.message.mine{background:linear-gradient(180deg, var(--bubble-mine), var(--bubble-mine-strong))}.message-row.theirs .message{border-bottom-left-radius:var(--radius-bubble)}.message-row.mine .message{border-bottom-right-radius:var(--radius-bubble)}.message-row.theirs.tail .message{border-bottom-left-radius:.35rem}.message-row.mine.tail .message{border-bottom-right-radius:.35rem}.message-row.theirs.tail .message:after{background:var(--bubble);content:"";z-index:0;width:14px;height:14px;clip-path:path("M14 14 L0 14 Q9 11 14 0 Z");border-bottom-right-radius:12px;position:absolute;bottom:0;left:-7px}.message-row.mine.tail .message:after{background:var(--bubble-mine-strong);content:"";z-index:0;width:14px;height:14px;clip-path:path("M0 14 L14 14 Q5 11 0 0 Z");border-bottom-left-radius:12px;position:absolute;bottom:0;right:-7px}.message-author{letter-spacing:.01em;margin-bottom:.1rem;font-size:.78rem;font-weight:700}.message-body{color:var(--text);white-space:pre-wrap;font-size:.97rem;line-height:1.4;position:relative}.message-time{color:#f5f7fb8c;float:right;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:.3rem;margin:.55rem 0 -.18rem .45rem;font-size:.68rem;font-weight:500;display:inline-flex}.message.mine .message-time{color:#d8e8f8c7}.message.media{padding:.22rem}.message.media .message-body{padding:0 .45rem .35rem .5rem}.message.media .message-author{padding:.3rem .5rem 0}.reply-quote{border-left:3px solid var(--accent);color:#f5f7fbc7;background:#ffffff12;border-radius:.55rem;gap:.12rem;margin-bottom:.4rem;padding:.4rem .6rem;display:grid}.message.mine .reply-quote{color:#ffffffeb;background:#ffffff24;border-left-color:#ffffffa6}.reply-quote strong{color:var(--accent);font-size:.82rem;font-weight:700}.message.mine .reply-quote strong{color:#fffffff2}.reply-quote span{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;display:-webkit-box;overflow:hidden}.photo-preview-button{box-shadow:none;text-align:left;background:0 0;border-radius:.85rem;margin:0;padding:0;display:block;position:relative;overflow:hidden}.photo-preview-button:hover:not(:disabled){box-shadow:none;transform:none}.photo-message{object-fit:contain;border-radius:.85rem;max-width:min(520px,100%);max-height:360px;display:block}.photo-preview-button.pre-sized .photo-message{object-fit:cover;width:100%;max-width:none;height:100%;max-height:none}.video-preview-button{min-width:200px;min-height:140px}.video-poster-fallback{color:#ffffffd9;background:linear-gradient(135deg,#1d2735,#111824);border-radius:.85rem;justify-content:center;align-items:center;width:min(360px,100%);height:200px;display:flex}.video-poster-fallback svg{width:2.4rem;height:2.4rem}.video-play-badge{color:#fff;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;border-radius:999px;justify-content:center;align-items:center;width:3.4rem;height:3.4rem;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 14px #00000059}.video-play-badge svg{fill:currentColor;width:1.5rem;height:1.5rem;margin-left:.18rem}.video-preview-button:hover .video-play-badge{background:#000000b3}.video-preview-button.downloading .video-play-badge{background:#000000c7;border-radius:1rem;width:auto;height:auto;min-height:2.6rem;padding:.4rem .75rem}.download-ring-wrap{color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:.5rem;font-size:.78rem;font-weight:500;display:inline-flex}.download-ring{flex:none;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;display:inline-flex}.download-ring svg{fill:none;width:100%;height:100%}.download-ring-track{stroke:#ffffff40}.download-ring-fill{stroke:#6ec1ff;transition:stroke-dashoffset .12s ease-out}.download-ring-label{letter-spacing:.01em;line-height:1}.download-ring-wrap.indeterminate .download-ring svg{animation:1.2s linear infinite download-ring-spin}@keyframes download-ring-spin{to{transform:rotate(360deg)}}.photo-preview-button.photo-loading{cursor:progress}.photo-loading-placeholder{color:#ffffff73;background:linear-gradient(120deg,#1c2532 0%,#232f3d 50%,#1c2532 100%) 0 0/220% 100%;border-radius:.85rem;justify-content:center;align-items:center;width:min(320px,100%);height:200px;animation:1.6s linear infinite photo-shimmer;display:flex}.photo-preview-button.pre-sized .photo-loading-placeholder{width:100%;height:100%}.photo-loading-placeholder svg{fill:currentColor;width:2.6rem;height:2.6rem}@keyframes photo-shimmer{0%{background-position:0%}to{background-position:-220%}}.photo-viewer-loading{background-color:#0b1118;background-position:50%;background-repeat:no-repeat;background-size:contain;justify-content:center;align-items:center;min-height:220px;display:flex;position:relative}.photo-viewer-loading:before{content:"";background:#00000073;position:absolute;inset:0}.photo-viewer-loading-pill{color:#fff;z-index:1;background:#000000a6;border-radius:999px;padding:.55rem 1rem;font-size:.85rem;position:relative}.media-progress{color:#fff;z-index:1;background:#000000b3;border-radius:.85rem;flex-direction:column;gap:.45rem;min-width:min(280px,80vw);padding:.85rem 1rem;display:flex;position:relative}.media-progress-label{justify-content:space-between;align-items:center;gap:.75rem;font-size:.9rem;font-weight:500;display:flex}.media-progress-percent{font-variant-numeric:tabular-nums;opacity:.9}.media-progress-track{background:#ffffff2e;border-radius:999px;width:100%;height:6px;position:relative;overflow:hidden}.media-progress-fill{border-radius:inherit;background:linear-gradient(90deg,#4f8cff,#7aa9ff);height:100%;transition:width .12s ease-out}.media-progress-track.indeterminate .media-progress-fill{width:35%;animation:1.4s ease-in-out infinite media-progress-indeterminate}@keyframes media-progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(285%)}}.media-progress-detail{font-variant-numeric:tabular-nums;opacity:.75;text-align:right;font-size:.75rem}.photo-time{color:#ffffffeb;white-space:nowrap;text-shadow:0 1px 1px #0006;background:#0000008c;border-radius:999px;align-items:center;gap:.3rem;padding:.18rem .5rem;font-size:.7rem;font-weight:500;display:inline-flex;position:absolute;bottom:.55rem;right:.55rem}.seen-indicator{appearance:none;color:inherit;font:inherit;background:0 0;border:none;align-items:center;padding:0;display:inline-flex;position:relative}button.seen-indicator{cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;touch-action:manipulation;-webkit-user-select:none;user-select:none}button.seen-indicator:focus{outline:none}button.seen-indicator:focus-visible{outline:2px solid var(--accent,#6ec1ff);outline-offset:2px;border-radius:4px}.seen-indicator svg{width:.95rem;height:.75rem;display:block}.seen-indicator.seen{color:#6ec1ff}.message.mine .seen-indicator{color:#d8e8f8a6}.message.mine .seen-indicator.seen{color:#8ed0ff}.photo-time .seen-indicator{color:#ffffffb3}.photo-time .seen-indicator.seen{color:#8ed0ff}.seen-tooltip{border:1px solid var(--border);box-shadow:var(--shadow-md);color:var(--text);pointer-events:none;text-align:left;white-space:normal;z-index:5;background:#0f1621f7;border-radius:.55rem;width:max-content;max-width:min(220px,80vw);padding:.45rem .6rem;font-size:.78rem;font-weight:500;display:none;position:absolute;bottom:calc(100% + .4rem);right:0}.seen-tooltip ul li{white-space:nowrap}.seen-indicator:hover .seen-tooltip,.seen-indicator:focus-visible .seen-tooltip,.seen-indicator.pinned .seen-tooltip{display:block}.seen-tooltip-title{color:var(--muted);letter-spacing:.02em;text-transform:uppercase;margin-bottom:.25rem;font-size:.72rem;font-weight:600;display:block}.seen-tooltip ul{gap:.15rem;margin:0;padding:0;list-style:none;display:grid}.seen-tooltip li{color:var(--text)}.photo-viewer{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:90;background:#030a10d9;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.photo-viewer-content{gap:.75rem;max-width:min(980px,100vw - 2rem);max-height:calc(100vh - 3rem);display:grid}.photo-viewer-image{box-shadow:var(--shadow-lg);object-fit:contain;border-radius:1rem;max-width:100%;max-height:calc(100vh - 7rem);display:block}.photo-viewer-zoom{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;max-width:100%;max-height:calc(100vh - 7rem);display:flex;position:relative;overflow:hidden}.photo-viewer-zoom>img{transform-origin:50%;will-change:transform;max-width:100%;max-height:calc(100vh - 7rem)}.photo-viewer-zoom.zoomed>img{cursor:grab}.photo-viewer-zoom.zoomed:active>img{cursor:grabbing}.video-viewer-player{background:#000;width:min(980px,100%)}.photo-viewer-caption{color:var(--muted);justify-content:space-between;align-items:center;gap:.75rem;display:flex}.photo-viewer-caption-text{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.photo-viewer-caption strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.photo-viewer-delete{color:#ff8a93;cursor:pointer;background:#dc35452e;border:1px solid #dc354573;border-radius:.85rem;flex:none;align-items:center;gap:.4rem;padding:.5rem .85rem;font-size:.85rem;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.photo-viewer-delete:hover:not(:disabled){color:#fff;background:#dc354552;border-color:#dc3545b3}.photo-viewer-delete:disabled{cursor:progress;opacity:.6}.photo-viewer-delete svg{width:1rem;height:1rem}.photo-viewer-close{box-shadow:none;color:#fff;z-index:91;background:#ffffff1f;width:2.6rem;height:2.6rem;padding:0;position:fixed;top:1rem;right:1rem}.photo-viewer-close:hover:not(:disabled){box-shadow:none;background:#fff3;transform:none}.photo-viewer-close svg{fill:currentColor;width:1.2rem;height:1.2rem}.message-reactions{flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.4rem;display:flex}.reaction-pill{box-shadow:none;color:var(--text);cursor:pointer;background:#ffffff14;border-radius:999px;align-items:center;gap:.25rem;min-height:1.55rem;padding:.12rem .5rem;font-size:.78rem;font-weight:600;display:inline-flex}.reaction-pill:hover:not(:disabled){box-shadow:none;background:#ffffff29;transform:none}.reaction-pill.mine{color:#c9e8ff;background:#2aabee40}.reaction-pill.mine:hover:not(:disabled){background:#2aabee59}.message-context-menu{border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:70;background:#17212bfc;border-radius:1rem;flex-direction:column;gap:.2rem;width:min(420px,100vw - 2rem);max-height:min(640px,100vh - 2rem);padding:.5rem;display:flex;position:fixed;overflow:auto}.message-context-menu>button{box-shadow:none;color:var(--text);text-align:left;background:0 0;border-radius:.6rem;justify-content:flex-start;align-items:center;gap:.7rem;padding:.55rem .75rem;font-weight:500;display:inline-flex}.message-context-menu>button:hover:not(:disabled){box-shadow:none;background:#2aabee1f;transform:none}.message-context-menu>button svg{fill:currentColor;width:1.05rem;height:1.05rem}.context-menu-section{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;padding:.5rem .55rem .1rem;font-size:.78rem;font-weight:600}.context-reactions{grid-template-columns:repeat(8,1fr);gap:.25rem;display:grid}.emoji-option{box-shadow:none;color:var(--text);background:0 0;border-radius:.6rem;justify-content:center;align-items:center;height:2.2rem;padding:0;font-size:1.3rem;display:inline-flex}.emoji-option:hover:not(:disabled),.emoji-option:focus-visible{box-shadow:none;background:#ffffff1a;transform:none}.reaction-picker-divider{border-top:1px solid var(--border);margin:.35rem 0}.scroll-down-button{border:1px solid var(--border);bottom:calc(4.6rem + env(safe-area-inset-bottom,0px));box-shadow:var(--shadow-md);color:var(--text);z-index:5;background:#17212beb;border-radius:50%;width:2.7rem;height:2.7rem;padding:0;position:absolute;right:1rem}.scroll-down-button:hover:not(:disabled){box-shadow:var(--shadow-md);background:#232f3cf2;transform:translateY(-1px)}.scroll-down-button svg{fill:currentColor;width:1.2rem;height:1.2rem}.composer{border-top:1px solid var(--border);padding:.55rem .7rem calc(.55rem + env(safe-area-inset-bottom,0px));background:#17212bfa;grid-template-columns:2.6rem minmax(0,1fr) 2.8rem;align-items:end;gap:.5rem;display:grid}.upload-progress-card{border-top:1px solid var(--border);background:linear-gradient(135deg,#6ec1ff2e,#4090e01a);align-items:center;gap:.7rem;padding:.7rem .9rem;display:flex}.upload-progress-icon{color:#9ed2ff;background:#6ec1ff2e;border-radius:.7rem;flex:none;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;display:flex}.upload-progress-icon svg{width:1.1rem;height:1.1rem}.upload-progress-body{flex:1;gap:.35rem;min-width:0;display:grid}.upload-progress-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.upload-progress-label{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:600;overflow:hidden}.upload-progress-percent{color:#9ed2ff;font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:700}.upload-progress-track{background:#ffffff1f;border-radius:999px;width:100%;height:6px;overflow:hidden}.upload-progress-fill{background:linear-gradient(90deg,#6ec1ff,#4090e0);border-radius:999px;height:100%;transition:width .16s ease-out}.upload-progress-fill.indeterminate{width:40%;animation:1.1s ease-in-out infinite upload-progress-sweep}@keyframes upload-progress-sweep{0%{margin-left:-40%}to{margin-left:100%}}.spinner.small{border-width:2px;width:1rem;height:1rem}.photo-input{display:none}.composer-input-wrap{position:relative}.composer-input-wrap textarea{background:#0f1821d9;border-radius:1.25rem;min-height:2.6rem;max-height:9rem;padding:.6rem 3rem .6rem 1rem;font-size:.97rem;line-height:1.4;overflow-y:auto}.composer-input-wrap textarea:focus{border-color:#2aabee80;box-shadow:0 0 0 2px #2aabee2e}.composer-icon-button{box-shadow:none;color:var(--muted-strong);background:0 0;border-radius:50%;justify-content:center;align-items:center;width:2.6rem;height:2.6rem;padding:0;display:inline-flex}.composer-icon-button:hover:not(:disabled){box-shadow:none;color:var(--accent);background:#ffffff14;transform:none}.composer-icon-button svg{fill:currentColor;width:1.35rem;height:1.35rem}.composer-icon-button.composer-emoji{z-index:2;position:absolute;top:auto;bottom:0;right:.15rem}.composer-icon-button.small{width:1.85rem;height:1.85rem}.composer-icon-button.small svg{width:.9rem;height:.9rem}.send-button{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:2.7rem;height:2.7rem;padding:0;display:inline-flex;box-shadow:0 8px 22px #2aabee52}.send-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 28px #2aabee6b}.send-button svg{fill:currentColor;width:1.25rem;height:1.25rem;margin-left:2px}.reply-composer{border-left:3px solid var(--accent);background:#2aabee1f;border-radius:.7rem;align-items:center;gap:.55rem;margin-bottom:.4rem;padding:.45rem .55rem;display:flex}.reply-composer-icon{color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.reply-composer-icon svg{fill:currentColor;width:1.1rem;height:1.1rem}.reply-composer-text{flex:1;gap:.1rem;min-width:0;display:grid}.reply-composer-text strong{color:var(--accent);font-size:.85rem}.reply-composer-text span{-webkit-line-clamp:1;color:#f5f7fbc7;line-clamp:1;-webkit-box-orient:vertical;font-size:.85rem;display:-webkit-box;overflow:hidden}.emoji-picker{border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:8;background:#17212bfa;border-radius:1rem;width:min(390px,100vw - 2rem);padding:.5rem;position:absolute;bottom:calc(100% + .5rem);right:0}.typing-dots{align-items:center;gap:3px;padding:0 2px;display:inline-flex}.typing-dots span{background:var(--accent);opacity:.55;border-radius:50%;width:5px;height:5px;animation:1.3s ease-in-out infinite typing-bounce;display:inline-block}.typing-dots span:nth-child(2){animation-delay:.18s}.typing-dots span:nth-child(3){animation-delay:.36s}@keyframes typing-bounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@media (max-width:850px){.shell{width:min(100% - 1rem,1120px);padding:.75rem 0}.shell-chat{width:100%;max-width:100%}.hero{grid-template-columns:1fr}.chat>.panel{border-radius:0}.chat-header{padding:calc(.6rem + env(safe-area-inset-top,0px)) .85rem .6rem}.chat-header-avatar{width:38px;height:38px}.messages{padding:calc(.85rem + 58px + env(safe-area-inset-top,0px)) .7rem 1rem}.message{max-width:86%}.composer{padding:.5rem .55rem calc(.5rem + env(safe-area-inset-bottom,0px));grid-template-columns:2.4rem minmax(0,1fr) 2.6rem}.emoji-picker{width:calc(100vw - 1rem);right:-3.25rem}.message-context-menu{width:calc(100vw - 1rem);max-height:calc(100vh - 1rem);top:.5rem!important;left:.5rem!important}.scroll-down-button{bottom:calc(4.4rem + env(safe-area-inset-bottom,0px));right:.65rem}}@media (max-width:520px){.shell:not(.shell-chat){width:calc(100% - 1rem)}.panel{border-radius:1rem;padding:1rem}.composer{grid-template-columns:2.3rem minmax(0,1fr) 2.5rem}button{padding:.7rem .95rem}}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:80;background:#080c12b3;justify-content:center;align-items:center;padding:1.25rem;animation:.14s ease-out fadeInOverlay;display:flex;position:fixed;inset:0}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}.modal{border-radius:var(--radius-panel);width:100%;max-width:420px;box-shadow:var(--shadow-lg);background:#17212bfa;animation:.16s ease-out popIn}@keyframes popIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.modal-header h2{margin:0;font-size:1.05rem}.modal label{gap:.35rem}.modal label>.small{letter-spacing:.02em;text-transform:uppercase}.modal-actions{justify-content:flex-end;gap:.5rem;margin-top:.25rem;display:flex}.modal-actions button{min-width:7rem}.modal-avatar{align-items:center;gap:.85rem;display:flex}.modal-avatar>.avatar{flex-shrink:0}.modal-avatar-actions{flex-wrap:wrap;gap:.4rem;display:flex}.modal-avatar-actions .ghost-button{min-width:0;padding:.45rem .75rem}.call-controls{padding:1.25rem 1rem calc(1.5rem + env(safe-area-inset-bottom,0px));background:linear-gradient(#0000,#0000008c);justify-content:center;align-items:center;gap:1.5rem;display:flex}.call-btn{color:#fff;cursor:pointer;background:#ffffff29;border:0;border-radius:50%;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;transition:background .15s,transform .1s;display:inline-flex}.call-btn:active{transform:scale(.94)}.call-btn svg{fill:currentColor;width:1.6rem;height:1.6rem}.call-btn-off{color:#11181f;background:#fff}.call-btn-hangup,.call-btn-decline{background:#f0463a;width:4rem;height:4rem}.call-btn-accept{background:#36c759;width:4rem;height:4rem}@media (max-width:600px){.call-controls{gap:1.1rem}}.call-room{z-index:110;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);background:#05080d;flex-direction:column;display:flex;position:fixed;inset:0}.call-grid{flex:1;gap:.4rem;min-height:0;padding:.5rem;display:grid}.call-grid.grid-one{grid-template-columns:1fr}.call-grid.grid-two{grid-template-rows:1fr 1fr;grid-template-columns:1fr}.call-grid.grid-four{grid-template-columns:1fr 1fr;grid-auto-rows:1fr}.call-grid.grid-many{grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr}@media (min-width:720px){.call-grid.grid-two{grid-template-rows:1fr;grid-template-columns:1fr 1fr}}.call-self-pip{right:calc(env(safe-area-inset-right,0px) + 12px);top:calc(env(safe-area-inset-top,0px) + 12px);z-index:7;aspect-ratio:3/4;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border:1px solid #ffffff1f;border-radius:.7rem;width:28vw;max-width:150px;position:absolute;overflow:hidden;box-shadow:0 6px 20px #00000073}.call-self-pip:active{cursor:grabbing}.call-self-pip-min{top:auto;left:auto;right:calc(env(safe-area-inset-right,0px) + 12px);bottom:calc(env(safe-area-inset-bottom,0px) + 92px);aspect-ratio:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#0009;border-radius:50%;justify-content:center;align-items:center;width:44px;max-width:44px;height:44px;display:flex}.call-pip-toggle{cursor:pointer;color:#fff;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.call-pip-toggle svg{fill:currentColor;width:18px;height:18px}.call-pip-min{z-index:2;background:#00000080;border-radius:6px;width:24px;height:24px;position:absolute;top:4px;right:4px}.call-self-pip-min .call-pip-toggle{background:0 0;border-radius:50%;width:100%;height:100%}.call-self-pip-min .call-pip-toggle svg{width:22px;height:22px}.call-self-pip .call-tile{border-radius:0}.call-self-pip .call-tile-label{padding:1px 6px;font-size:.7rem}@media (min-width:720px){.call-self-pip{aspect-ratio:16/10;width:180px;max-width:180px}}.call-tile{background:radial-gradient(circle at 50% 35%,#1b2a3a,#05080d 72%);border-radius:.9rem;min-height:0;position:relative;overflow:hidden}.call-tile-video{object-fit:cover;background:#05080d;width:100%;height:100%}.call-tile-video.mirror{transform:scaleX(-1)}.call-tile-video.is-hidden{opacity:0}.call-media-error{color:#ff6b6b;text-align:center;background:#dc35451f;border-radius:10px;flex-direction:column;align-items:center;gap:10px;margin:0;padding:12px;font-size:13px;line-height:1.4;display:flex}.call-media-error p{margin:0}.call-media-retry{background:var(--accent,#2f6df6);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600}.call-media-retry:hover{filter:brightness(1.08)}.call-btn-active{background:var(--accent,#2f6df6);color:#fff}.call-settings{border-radius:12px;flex-direction:column;gap:12px;width:100%;max-width:360px;padding:14px;display:flex}.call-settings-row{color:var(--muted,#9aa3b2);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.call-settings-row select{width:100%;color:inherit;background:#00000040;border:1px solid #ffffff26;border-radius:8px;padding:8px 10px;font-size:14px;font-weight:400}.call-settings-floating{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 96px);z-index:6;justify-content:center;width:calc(100% - 32px);max-width:360px;display:flex;position:absolute;transform:translate(-50%)}.call-reconnecting{top:calc(env(safe-area-inset-top,0px) + 12px);z-index:5;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:500;position:absolute;left:50%;transform:translate(-50%)}.call-tile-placeholder{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.call-tile-label{color:#fff;background:#00000080;border-radius:.6rem;align-items:center;gap:.3rem;max-width:calc(100% - 1rem);padding:.2rem .5rem;font-size:.8rem;display:inline-flex;position:absolute;bottom:.5rem;left:.5rem}.call-tile-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.call-tile-mic{color:#ff8f8f;flex-shrink:0;width:.95rem;height:.95rem;display:inline-flex}.call-tile-mic svg{fill:currentColor;width:100%;height:100%}.call-btn-share{background:#ffffff29}.call-copied-toast{left:50%;bottom:calc(6rem + env(safe-area-inset-bottom,0px));color:#fff;background:#000000bf;border-radius:999px;padding:.45rem .9rem;font-size:.85rem;position:absolute;transform:translate(-50%)}.call-lobby{justify-content:center;align-items:center;padding:1.25rem}.call-lobby-card{text-align:center;flex-direction:column;align-items:stretch;gap:.85rem;width:100%;max-width:24rem;display:flex}.call-lobby-card h2{margin:0}.call-lobby-preview{aspect-ratio:4/3;border-radius:1rem;overflow:hidden}.call-lobby-toggles{justify-content:center;gap:1rem;display:flex}.call-lobby-name{width:100%}.call-lobby-join{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:.8rem;width:100%;padding:.8rem 1rem;font-weight:600}.call-lobby-join:disabled{opacity:.5;cursor:default}.call-share{border:1px solid var(--border);background:var(--panel-strong);width:100%;color:var(--text);cursor:pointer;border-radius:.8rem;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1rem;display:inline-flex}.call-share svg{fill:currentColor;width:1.2rem;height:1.2rem}.call-lobby-cancel{align-self:center}
