*,*:before,*:after{box-sizing:border-box}html,body,#app{height:100%;width:100%;margin:0}:root{--bg: #080b12;--bg-gradient: linear-gradient(180deg, #070a10 0%, #0d1424 100%);--surface: #131a29;--surface-2: #1a2334;--surface-3: #1a2334;--surface-hover: #1a2334;--accent: #efe7d2;--accent-pressed: color-mix(in srgb, var(--accent) 84%, black);--accent-soft: color-mix(in srgb, var(--accent) 14%, transparent);--on-accent: #12161f;--text: #eef1f7;--text-2: #93a1b8;--text-3: #5c6a82;--border: rgba(235, 240, 248, .085);--border-hover: rgba(235, 240, 248, .16);--border-strong: rgba(235, 240, 248, .16);--danger: #c97e6f;--danger-soft: color-mix(in srgb, var(--danger) 12%, transparent);--danger-text: var(--danger);--danger-hover: color-mix(in srgb, var(--danger) 88%, white);--danger-error: color-mix(in srgb, var(--danger) 92%, white);--on-danger: #1a0f0c;--ok: #85bbde;--bubble-in: var(--surface);--bubble-out: #25425e;--on-bubble-out: #ecf3f9;--bub-out-ln: transparent;--meta-out: rgba(236, 243, 249, .55);--chk-out: #efe7d2;--fld-bg: #161e2e;--fld-bd: rgba(235, 240, 248, .13);--ava-bd: rgba(239, 231, 210, .38);--text-xs: 11px;--text-caption: 12px;--text-sm: 13px;--text-md: 14px;--text-lg: 15px;--text-xl: 18px;--text-2xl: 20px;--text-3xl: 24px;--text-display: 32px;--header-h: 68px;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-pill: 999px;--isl-sh: 0 1px 1px rgba(0, 0, 0, .3), 0 8px 20px -10px rgba(0, 0, 0, .42), 0 24px 48px -28px rgba(0, 0, 0, .5);--bub-sh: 0 1px 1px rgba(0, 0, 0, .24), 0 5px 12px -7px rgba(0, 0, 0, .36);--pop-sh: 0 2px 2px rgba(0, 0, 0, .35), 0 14px 30px -12px rgba(0, 0, 0, .55), 0 34px 64px -30px rgba(0, 0, 0, .6);--shadow: var(--isl-sh);--shadow-sm: var(--bub-sh);--shadow-md: var(--isl-sh);--shadow-lg: var(--pop-sh), inset 0 1px 0 var(--hairline-highlight);--glow-accent: none;--focus-ring: 0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);--dur-fast: .12s;--dur-base: .18s;--dur-slow: .24s;--ease-out: cubic-bezier(.2, 0, 0, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--surface-header: rgb(19 26 41 / .92);--surface-item: rgb(19 26 41 / .66);--surface-bar: rgb(19 26 41 / .92);--surface-modal: rgb(19 26 41 / .88);--surface-map: rgb(19 26 41 / .9);--body-bg: var(--bg);--avatar-bg: var(--surface-2);--avatar-fg: var(--text);--auth-note-fg: var(--text-2);--conv-tag-fg: var(--accent);--edge: rgba(238, 241, 247, .07);--hairline-highlight: var(--edge);--overlay-backdrop: rgb(4 7 13 / .52);--scrim: rgb(4 7 13 / .6);--opacity-disabled: .45;--hover-overlay: rgba(238, 241, 247, .05);--warning: #f5a623;--warning-soft: rgb(245 166 35 / .12)}@media (prefers-color-scheme: light){:root:not([data-theme=dark]){--bg: #f5f3ed;--bg-gradient: linear-gradient(180deg, #f8f6f1 0%, #efebe0 100%);--surface: #fdfcf9;--surface-2: #ece8dc;--surface-3: #ece8dc;--surface-hover: #ece8dc;--text: #191b20;--text-2: #5a6372;--text-3: #9a968a;--border: rgba(25, 27, 32, .08);--border-hover: rgba(25, 27, 32, .16);--border-strong: rgba(25, 27, 32, .16);--accent: #29506f;--accent-pressed: color-mix(in srgb, var(--accent) 84%, black);--accent-soft: color-mix(in srgb, var(--accent) 12%, transparent);--on-accent: #f5f8fb;--ok: #4886b4;--bubble-in: var(--surface);--bubble-out: #e2eaf1;--on-bubble-out: #191b20;--bub-out-ln: rgba(41, 80, 111, .16);--meta-out: #7c8894;--chk-out: #29506f;--fld-bg: #ffffff;--fld-bd: #d6d1c3;--ava-bd: rgba(41, 80, 111, .42);--isl-sh: 0 1px 1px rgba(35, 33, 26, .06), 0 8px 20px -10px rgba(35, 33, 26, .1), 0 24px 48px -28px rgba(35, 33, 26, .14);--bub-sh: 0 1px 1px rgba(35, 33, 26, .05), 0 5px 12px -7px rgba(35, 33, 26, .1);--pop-sh: 0 2px 2px rgba(35, 33, 26, .08), 0 14px 30px -12px rgba(35, 33, 26, .16), 0 34px 64px -30px rgba(35, 33, 26, .2);--shadow: var(--isl-sh);--shadow-sm: var(--bub-sh);--shadow-md: var(--isl-sh);--shadow-lg: var(--pop-sh), inset 0 1px 0 var(--hairline-highlight);--glow-accent: none;--focus-ring: 0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);--surface-header: rgb(253 252 249 / .95);--surface-item: rgb(253 252 249 / .75);--surface-bar: rgb(253 252 249 / .95);--surface-modal: rgb(253 252 249 / .97);--surface-map: rgb(253 252 249 / .95);--body-bg: var(--bg);--avatar-bg: var(--surface-2);--avatar-fg: var(--text);--auth-note-fg: var(--text-2);--conv-tag-fg: var(--accent);--danger: #b4604f;--danger-soft: color-mix(in srgb, var(--danger) 12%, transparent);--danger-text: var(--danger);--danger-hover: color-mix(in srgb, var(--danger) 82%, black);--danger-error: color-mix(in srgb, var(--danger) 78%, black);--on-danger: #fbf3ef;--edge: #ffffff;--hairline-highlight: var(--edge);--overlay-backdrop: rgb(35 33 26 / .38);--scrim: rgb(35 33 26 / .46);--hover-overlay: rgba(25, 27, 32, .05);--warning: #b97400;--warning-soft: rgb(185 116 0 / .12)}}[data-theme=dark]{--bg: #080b12;--bg-gradient: linear-gradient(180deg, #070a10 0%, #0d1424 100%);--surface: #131a29;--surface-2: #1a2334;--surface-3: #1a2334;--surface-hover: #1a2334;--text: #eef1f7;--text-2: #93a1b8;--text-3: #5c6a82;--border: rgba(235, 240, 248, .085);--border-hover: rgba(235, 240, 248, .16);--border-strong: rgba(235, 240, 248, .16);--accent: #efe7d2;--accent-pressed: color-mix(in srgb, var(--accent) 84%, black);--accent-soft: color-mix(in srgb, var(--accent) 14%, transparent);--on-accent: #12161f;--ok: #85bbde;--bubble-in: var(--surface);--bubble-out: #25425e;--on-bubble-out: #ecf3f9;--bub-out-ln: transparent;--meta-out: rgba(236, 243, 249, .55);--chk-out: #efe7d2;--fld-bg: #161e2e;--fld-bd: rgba(235, 240, 248, .13);--ava-bd: rgba(239, 231, 210, .38);--isl-sh: 0 1px 1px rgba(0, 0, 0, .3), 0 8px 20px -10px rgba(0, 0, 0, .42), 0 24px 48px -28px rgba(0, 0, 0, .5);--bub-sh: 0 1px 1px rgba(0, 0, 0, .24), 0 5px 12px -7px rgba(0, 0, 0, .36);--pop-sh: 0 2px 2px rgba(0, 0, 0, .35), 0 14px 30px -12px rgba(0, 0, 0, .55), 0 34px 64px -30px rgba(0, 0, 0, .6);--shadow: var(--isl-sh);--shadow-sm: var(--bub-sh);--shadow-md: var(--isl-sh);--shadow-lg: var(--pop-sh), inset 0 1px 0 var(--hairline-highlight);--glow-accent: none;--focus-ring: 0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);--surface-header: rgb(19 26 41 / .92);--surface-item: rgb(19 26 41 / .66);--surface-bar: rgb(19 26 41 / .92);--surface-modal: rgb(19 26 41 / .88);--surface-map: rgb(19 26 41 / .9);--body-bg: var(--bg);--avatar-bg: var(--surface-2);--avatar-fg: var(--text);--auth-note-fg: var(--text-2);--conv-tag-fg: var(--accent);--danger: #c97e6f;--danger-soft: color-mix(in srgb, var(--danger) 12%, transparent);--danger-text: var(--danger);--danger-hover: color-mix(in srgb, var(--danger) 88%, white);--danger-error: color-mix(in srgb, var(--danger) 92%, white);--on-danger: #1a0f0c;--edge: rgba(238, 241, 247, .07);--hairline-highlight: var(--edge);--overlay-backdrop: rgb(4 7 13 / .52);--scrim: rgb(4 7 13 / .6);--hover-overlay: rgba(238, 241, 247, .05);--warning: #f5a623;--warning-soft: rgb(245 166 35 / .12)}[data-theme=light]{--bg: #f5f3ed;--bg-gradient: linear-gradient(180deg, #f8f6f1 0%, #efebe0 100%);--surface: #fdfcf9;--surface-2: #ece8dc;--surface-3: #ece8dc;--surface-hover: #ece8dc;--text: #191b20;--text-2: #5a6372;--text-3: #9a968a;--border: rgba(25, 27, 32, .08);--border-hover: rgba(25, 27, 32, .16);--border-strong: rgba(25, 27, 32, .16);--accent: #29506f;--accent-pressed: color-mix(in srgb, var(--accent) 84%, black);--accent-soft: color-mix(in srgb, var(--accent) 12%, transparent);--on-accent: #f5f8fb;--ok: #4886b4;--bubble-in: var(--surface);--bubble-out: #e2eaf1;--on-bubble-out: #191b20;--bub-out-ln: rgba(41, 80, 111, .16);--meta-out: #7c8894;--chk-out: #29506f;--fld-bg: #ffffff;--fld-bd: #d6d1c3;--ava-bd: rgba(41, 80, 111, .42);--isl-sh: 0 1px 1px rgba(35, 33, 26, .06), 0 8px 20px -10px rgba(35, 33, 26, .1), 0 24px 48px -28px rgba(35, 33, 26, .14);--bub-sh: 0 1px 1px rgba(35, 33, 26, .05), 0 5px 12px -7px rgba(35, 33, 26, .1);--pop-sh: 0 2px 2px rgba(35, 33, 26, .08), 0 14px 30px -12px rgba(35, 33, 26, .16), 0 34px 64px -30px rgba(35, 33, 26, .2);--shadow: var(--isl-sh);--shadow-sm: var(--bub-sh);--shadow-md: var(--isl-sh);--shadow-lg: var(--pop-sh), inset 0 1px 0 var(--hairline-highlight);--glow-accent: none;--focus-ring: 0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent);--surface-header: rgb(253 252 249 / .95);--surface-item: rgb(253 252 249 / .75);--surface-bar: rgb(253 252 249 / .95);--surface-modal: rgb(253 252 249 / .97);--surface-map: rgb(253 252 249 / .95);--body-bg: var(--bg);--avatar-bg: var(--surface-2);--avatar-fg: var(--text);--auth-note-fg: var(--text-2);--conv-tag-fg: var(--accent);--danger: #b4604f;--danger-soft: color-mix(in srgb, var(--danger) 12%, transparent);--danger-text: var(--danger);--danger-hover: color-mix(in srgb, var(--danger) 82%, black);--danger-error: color-mix(in srgb, var(--danger) 78%, black);--on-danger: #fbf3ef;--edge: #ffffff;--hairline-highlight: var(--edge);--overlay-backdrop: rgb(35 33 26 / .38);--scrim: rgb(35 33 26 / .46);--hover-overlay: rgba(25, 27, 32, .05);--warning: #b97400;--warning-soft: rgb(185 116 0 / .12)}body{overflow:hidden;background:var(--bg-gradient, var(--body-bg, #080b12));color:var(--text);font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,Noto Sans,sans-serif;line-height:1.4;-webkit-font-smoothing:antialiased}dialog{color:var(--text)}button,input,select,textarea{color:inherit}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:var(--border-strong);border-radius:var(--radius);border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background-color:var(--border-hover)}::-webkit-scrollbar-corner{background:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.screen{height:100%;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:28px 20px}.auth-screen{justify-content:flex-start;padding-top:clamp(36px,10vh,104px);padding-bottom:40px}.auth-brand{display:flex;align-items:center;justify-content:center;gap:9px;margin-bottom:26px}.auth-mark{display:block;color:var(--text)}.auth-mark-star{fill:var(--ok)}.auth-brand .auth-wordmark{margin:0;font-size:var(--text-lg);font-weight:700;letter-spacing:-.01em;line-height:1}.screen .auth-title{margin:0 0 6px;align-self:stretch;text-align:left;font-size:27px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.screen .auth-subtitle{margin:0 0 14px;align-self:stretch;text-align:left;font-size:var(--text-sm);color:var(--text-2)}.auth-switch{align-self:center;margin-top:2px;padding:10px 8px;border:0;background:none;cursor:pointer;font:inherit;font-size:var(--text-sm);color:var(--text-2)}.auth-switch b{color:var(--accent);font-weight:600}.auth-switch:hover b{text-decoration:underline}.auth-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.input-id{font-family:Cascadia Mono,SF Mono,Consolas,monospace;font-size:var(--text-lg);letter-spacing:.14em}.screen .auth-form{width:min(384px,100%);min-height:424px;display:flex;flex-direction:column;gap:16px;padding:30px 28px 26px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--isl-sh),inset 0 1px 0 var(--hairline-highlight)}.screen .auth-form button[type=submit]{margin-top:auto}.screen .auth-form button[type=submit],.screen .auth-form .primary-btn{box-shadow:none}.screen .auth-form button[type=submit]:hover:not(:disabled),.screen .auth-form .primary-btn:hover:not(:disabled){transform:none;box-shadow:none}.screen .auth-form button[type=submit]:disabled,.screen .auth-form .primary-btn:disabled{opacity:var(--opacity-disabled)}.screen form{width:min(390px,100%);display:flex;flex-direction:column;gap:14px;padding:24px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-modal);backdrop-filter:blur(7px);box-shadow:var(--shadow)}.auth-banner{padding:10px 14px;border-radius:var(--radius);font-size:var(--text-md);line-height:1.5;background:var(--surface-2, #1a2334);border:1px solid var(--border);color:var(--text-2)}.auth-banner--warn{background:var(--warning-soft);border-color:var(--warning);color:var(--warning)}.auth-note{margin:0;padding:12px;border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:var(--radius);background:color-mix(in srgb,var(--accent) 6%,transparent);color:var(--auth-note-fg, #93a1b8);font-size:var(--text-sm);line-height:1.5}.auth-warning{margin:0;padding:10px 12px;border:1px solid color-mix(in srgb,var(--danger) 25%,transparent);border-radius:var(--radius);background:var(--danger-soft);color:var(--danger-text);font-size:var(--text-sm);line-height:1.5}.pin-input-row{position:relative;display:flex;align-items:center}.pin-input-row input{flex:1;min-width:0;padding-right:46px}.pin-input-row input::-ms-reveal,.pin-input-row input::-ms-clear{display:none}.pin-toggle-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-2);padding:0;cursor:pointer}.pin-toggle-btn:hover{color:var(--text);background:var(--surface-2)}.pin-toggle-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.copy-id-btn{align-self:flex-end;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);font-size:var(--text-caption);padding:4px 10px;cursor:pointer}.copy-id-btn:hover{color:var(--text);border-color:var(--border-hover)}.copy-id-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stored-identity-card{width:min(384px,100%);display:flex;flex-direction:column;gap:12px;padding:16px 16px 14px;border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);background:var(--danger-soft)}.stored-identity-card-body{display:flex;flex-direction:column;gap:4px}.stored-identity-card-body strong{font-size:var(--text-md);font-weight:800;color:var(--text)}.stored-identity-card-body p{margin:0;font-size:var(--text-sm);color:var(--text-2);line-height:1.5}.ghost-danger-btn,.settings-btn.danger{border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger-text)}.ghost-danger-btn{min-height:44px;border-radius:var(--radius-pill);background:transparent;font:inherit;font-size:var(--text-sm);font-weight:800;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.ghost-danger-btn:hover,.settings-btn.danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger);color:var(--danger-hover)}.ghost-danger-btn:active{background:var(--danger-soft);transform:scale(.98);transition:var(--dur-fast) var(--ease-out)}dialog.confirm-modal{padding:0;max-width:none}.confirm-modal{width:min(400px,100%);overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-lg);animation:rise-in var(--dur-slow) var(--ease-out) both}.confirm-body{display:flex;flex-direction:column;gap:22px;padding:26px 24px 20px}.confirm-body--danger{align-items:center;text-align:center}.confirm-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;flex-shrink:0;border-radius:50%;background:var(--danger-soft);color:var(--danger)}.confirm-message{margin:0;font-size:var(--text-lg);line-height:1.5;color:var(--text);text-wrap:balance}.confirm-actions{display:flex;gap:10px;width:100%}.confirm-cancel-btn,.confirm-ok-btn,.confirm-danger-btn{flex:1;min-height:46px;padding:0 18px;border-radius:var(--radius);font-size:var(--text-md);font-weight:700;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}.confirm-cancel-btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.confirm-cancel-btn:hover{background:var(--surface-hover);border-color:var(--border-hover)}.confirm-ok-btn{border:none;background:var(--accent);color:var(--on-accent)}.confirm-ok-btn:hover{opacity:.9}.confirm-danger-btn{border:none;background:var(--danger);color:var(--on-danger)}.confirm-danger-btn:hover{opacity:.9}.confirm-cancel-btn:active,.confirm-ok-btn:active,.confirm-danger-btn:active{transform:scale(.98);transition:var(--dur-fast) var(--ease-out)}.confirm-cancel-btn:focus-visible,.confirm-ok-btn:focus-visible,.confirm-danger-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.pin-ack-label{display:flex;align-items:flex-start;gap:10px;font-size:var(--text-sm);line-height:1.5;color:var(--text-2);cursor:pointer}.pin-ack-label input[type=checkbox]{flex-shrink:0;margin-top:2px;accent-color:var(--accent);width:16px;height:16px}.screen .auth-input{width:100%;min-height:52px;padding:0 16px;border-radius:var(--radius);border:1px solid var(--fld-bd);background:var(--fld-bg);color:var(--text);font-size:var(--text-lg);outline:none;transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.screen .auth-input::placeholder{color:var(--text-2)}.screen .auth-input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.screen .auth-input:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.screen button[type=submit],.screen .primary-btn{margin-top:4px;min-height:48px;border:0;border-radius:var(--radius);background:var(--accent);color:var(--on-accent);font-size:var(--text-lg);font-weight:800;cursor:pointer;box-shadow:var(--glow-accent);transition:transform var(--dur-base) var(--ease-out),background-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.screen button[type=submit]:hover:not(:disabled),.screen .primary-btn:hover:not(:disabled){background:var(--accent-pressed);transform:translateY(-1px);box-shadow:0 10px 28px color-mix(in srgb,var(--accent) 30%,transparent)}.screen button[type=submit]:active:not(:disabled),.screen .primary-btn:active:not(:disabled){transform:translateY(0) scale(.98)}.screen button[type=submit]:disabled,.screen .primary-btn:disabled{opacity:var(--opacity-disabled);cursor:default;transform:none;box-shadow:none}.ghost-btn{width:100%;min-height:44px;padding:0 16px;border:1px solid var(--fld-bd);border-radius:var(--radius-pill);background:transparent;color:var(--text);font:inherit;font-size:var(--text-md);font-weight:700;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.ghost-btn:hover:not(:disabled){background:var(--surface-2)}.ghost-btn:active:not(:disabled){transform:scale(.98);transition:var(--dur-fast) var(--ease-out)}.ghost-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.ghost-btn:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.screen .auth-form button[type=submit],.screen .auth-form .primary-btn{border:1px solid var(--fld-bd);border-radius:var(--radius-pill);background:transparent;color:var(--text);font-weight:700}.screen .auth-form button[type=submit]:hover:not(:disabled),.screen .auth-form .primary-btn:hover:not(:disabled){background:var(--surface-2)}.login-code-panel{display:grid;gap:8px;padding:20px 16px;border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--accent) 8%,transparent);text-align:center}.login-code-panel span{color:var(--text-2);font-size:var(--text-caption);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.login-code-panel strong{color:var(--accent);font-size:var(--text-display);font-weight:800;letter-spacing:.14em}.loading{color:var(--text-2);font-size:var(--text-sm)}.error{color:var(--danger);font-size:var(--text-sm)}.error.small{font-size:var(--text-caption)}.chat-root,.messenger-root{height:100%;width:100%;display:flex;flex-direction:column}.messenger-header{flex-shrink:0}.messenger-split{flex:1;min-height:0;width:100%;display:grid;grid-template-columns:56px clamp(300px,31vw,410px) minmax(0,1fr);gap:12px;padding:12px;background:transparent}.conv-header.messenger-header{display:none}.messenger-rail{min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 0;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--isl-sh),inset 0 1px 0 var(--hairline-highlight)}.rail-brand{display:flex;align-items:center;justify-content:center;width:38px;height:38px;margin-bottom:8px}.rail-brand svg{display:block}.rail-item{width:40px;height:40px;flex:none;display:flex;align-items:center;justify-content:center;border:0;border-radius:12px;background:transparent;color:var(--text-3, var(--text-2));cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.rail-item:hover{color:var(--text)}.rail-item:focus-visible{outline:none;box-shadow:var(--focus-ring)}.rail-item--active{background:var(--surface-2);color:var(--text)}.rail-item--profile{margin-top:auto;width:40px;height:40px;border-radius:50%;padding:0}.rail-avatar{width:34px;height:34px;border-radius:50%}.messenger-contacts,.messenger-chat{min-width:0;min-height:0}.messenger-contacts{position:relative;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--isl-sh),inset 0 1px 0 var(--hairline-highlight);overflow:hidden}.messenger-chat{display:flex;flex-direction:column;background:transparent}.conv-root{height:100%;width:100%;display:flex;flex-direction:column;gap:10px;position:relative}.conv-header{min-height:var(--header-h);padding:10px 14px;display:flex;align-items:center;justify-content:space-between;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-header);box-shadow:var(--isl-sh),inset 0 1px 0 var(--hairline-highlight);flex-shrink:0}.conv-user{min-width:0;display:flex;align-items:center;gap:12px}.conv-user-meta{min-width:0;display:grid}.conv-user-meta strong{font-size:var(--text-md)}.conv-user-meta span{font-size:var(--text-caption);color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-btn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:0;border-radius:50%;background:transparent;color:var(--text-2);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.icon-btn svg{display:block}.icon-btn:hover{background:var(--hover-overlay);color:var(--text)}.icon-btn:active{background:var(--hover-overlay);transform:scale(.92);transition:var(--dur-fast) var(--ease-out)}.icon-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.conv-search-bar{flex-shrink:0;padding:8px 10px 4px;background:transparent}.conv-search{width:100%;min-height:40px;display:flex;align-items:center;gap:8px;padding:0 14px;border-radius:var(--radius-pill);border:1px solid var(--fld-bd);background:var(--fld-bg);color:var(--text-2);cursor:text;transition:border-color var(--dur-fast) var(--ease-out)}.conv-search svg{display:block;flex-shrink:0}.conv-search:hover{border-color:var(--border-hover)}.conv-search:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.conv-search-placeholder{font-size:var(--text-md)}.conv-list{list-style:none;margin:0;padding:8px 10px 80px;display:flex;flex-direction:column;gap:4px;overflow-y:auto;flex:1}.conv-status-footer{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:9px 16px;border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--text-3, var(--text-2));user-select:none}.conv-status-dot{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:var(--ok)}.conv-status-dot--off{background:var(--text-3, var(--text-2))}.conv-item{width:100%;display:flex;gap:10px;align-items:center;padding:10px;border-radius:var(--radius-sm);cursor:pointer;border:0;background:var(--surface-item);color:var(--text);transition:background-color var(--dur-fast) var(--ease-out)}.conv-item:hover{background:var(--surface-2)}.conv-item:active{transform:scale(.98);transition:var(--dur-fast) var(--ease-out)}.conv-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.conv-item.active{background:var(--surface-2)}.conv-content{min-width:0;display:grid;gap:2px;flex:1}.conv-content strong,.conv-title{display:flex;align-items:center;gap:6px;min-width:0;font-size:var(--text-sm)}.conv-title-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv-title--unread .conv-title-text{font-weight:800;color:var(--text)}.conv-tag{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:color-mix(in srgb,var(--accent) 16%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent);color:var(--conv-tag-fg, var(--accent));font-size:var(--text-xs);font-weight:700;line-height:1}.conv-tag>span{transform:translateY(.5px)}.conv-content p{margin:0;color:var(--text-2);font-size:var(--text-caption);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv-preview--hidden{font-style:italic;opacity:.6}.conv-content .conv-preview--new{color:var(--accent);font-weight:700}.conv-content .conv-preview--unread{color:var(--text);font-weight:600}.conv-badge{min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);font-size:var(--text-xs);font-weight:800;display:flex;align-items:center;justify-content:center}.conv-empty{color:var(--text-2);font-size:var(--text-sm);text-align:center;padding:22px 0}.fab-stack{position:absolute;right:16px;bottom:16px;display:flex;flex-direction:column;gap:10px}.fab{width:52px;height:52px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:var(--accent);color:var(--on-accent);cursor:pointer;box-shadow:var(--shadow-sm),var(--glow-accent);transition:background-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.fab svg{display:block}.fab:hover{background:var(--accent-pressed);transform:translateY(-1px)}.fab:active{transform:scale(.95)}.fab:focus-visible{outline:none;box-shadow:var(--focus-ring)}.fab.secondary{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.fab.secondary:hover{background:var(--surface-hover);border-color:var(--border-hover);color:var(--text)}.sw-update-banner{position:fixed;bottom:0;left:0;right:0;z-index:9999;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;background:var(--accent);color:var(--on-accent);font-size:var(--text-sm);font-weight:600}.sw-update-banner button{padding:2px 10px;border:1.5px solid var(--on-accent);border-radius:4px;background:transparent;color:var(--on-accent);font-size:var(--text-sm);font-weight:600;cursor:pointer}.offline-banner{min-height:28px;display:flex;align-items:center;justify-content:center;padding:4px 10px;background:var(--danger);color:var(--on-danger);font-size:var(--text-caption);font-weight:600}.chat-layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(230px,290px) 1fr}.sidebar{border-right:1px solid var(--border);background:linear-gradient(180deg,var(--surface-header),color-mix(in srgb,var(--bg) 95%,transparent)),var(--surface);display:flex;flex-direction:column;min-height:0}.sidebar-header{min-height:var(--header-h);display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.own-userid{display:block;min-width:0;color:var(--text);font-weight:700;font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-list{list-style:none;margin:0;padding:8px;flex:1;overflow-y:auto}.contact-item{width:100%;display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--radius-sm);color:var(--text);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.contact-item:hover{background:var(--surface-2);transform:translate(1px)}.contact-item:active{transform:scale(.98)}.contact-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.contact-item.active{background:var(--accent-soft)}.contact-name{min-width:0;font-size:var(--text-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.add-contact-form{display:grid;grid-template-columns:1fr 44px;gap:8px;padding:12px 12px 8px;border-top:1px solid var(--border)}.add-contact-form input{min-height:44px;padding:0 12px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-3);color:var(--text);font-size:var(--text-sm);outline:none}.add-contact-form input:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.add-contact-form button{width:44px;height:44px;border:0;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:var(--text-2xl);font-weight:700;cursor:pointer;transition:background-color var(--dur-base) var(--ease-out)}.add-contact-form button:hover{background:var(--accent-pressed)}.sidebar .error.small{margin:0;padding:0 12px 10px}.chat-main{min-height:0;display:flex;flex-direction:column;background:linear-gradient(180deg,#161616d9,#161616f2),var(--bg)}.chat-header{min-height:var(--header-h);display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface-map)}@media (min-width: 641px){.chat-back{display:none}}.chat-title{min-width:0;font-size:var(--text-md);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-title-wrap{min-width:0;display:grid;gap:2px;flex:1}.chat-title-row{display:flex;align-items:center;gap:6px;min-width:0}.chat-ephemeral-badge{flex:none;padding:1px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.02em}.chat-deleted-notice{margin:0;padding:12px 16px;border-top:1px solid var(--border);color:var(--text-2);font-size:var(--text-sm);text-align:center}.chat-deleted-notice strong{color:var(--text)}.chat-subtitle{min-width:0;color:var(--text-2);font-size:var(--text-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:14px 16px}.message{max-width:min(74%,620px);display:flex;flex-direction:column;gap:4px}.message.outgoing{align-self:flex-end}.message.incoming{align-self:flex-start}.message.incoming .message-footer{justify-content:flex-start}.message-text{width:fit-content;max-width:100%;padding:6px 12px;border-radius:18px;font-size:var(--text-md);line-height:1.4;background:var(--bubble-in);border:1px solid var(--border);box-shadow:var(--bub-sh),inset 0 1px 0 var(--hairline-highlight);color:var(--text);display:inline-flex;flex-wrap:wrap;align-items:flex-end;column-gap:8px;row-gap:2px}.message.incoming .message-text{border-bottom-left-radius:6px}.message-text-content{flex:0 1 auto;min-width:0;word-break:break-word;white-space:pre-wrap}.message.outgoing .message-text{background:var(--bubble-out);color:var(--on-bubble-out);border:1px solid var(--bub-out-ln);box-shadow:var(--bub-sh);border-bottom-right-radius:6px}.message-footer{display:inline-flex;align-items:center;gap:4px;margin-left:auto;position:relative;top:1px;user-select:none}.message>.message-footer{margin-top:1px;padding-right:2px}.msg-time{font-size:var(--text-caption);line-height:1;color:var(--text-2);white-space:nowrap;user-select:none}.message.outgoing .msg-time,.message.outgoing .msg-status,.message.outgoing .msg-status-count{color:var(--meta-out)}.message.outgoing .msg-status--read .msg-check{color:var(--chk-out)}.msg-retry-btn{all:unset;cursor:pointer;display:inline-flex;align-items:center;border-radius:50%;padding:2px}.msg-retry-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.msg-retry-btn:hover .msg-status-fail{opacity:.8}.msg-status{display:inline-flex;align-items:center;gap:0;font-size:var(--text-xs);line-height:1;color:var(--text-2);cursor:default;user-select:none}.msg-check{display:block}.msg-check--read{opacity:1}.msg-status-fail{font-weight:800;font-size:var(--text-sm);line-height:1;color:var(--danger)}.msg-status--failed{color:var(--danger-text)}.msg-status-count{font-size:var(--text-xs);margin-left:4px;color:inherit;opacity:.85;font-variant-numeric:tabular-nums}.message-sender{color:var(--accent);font-size:var(--text-sm);font-weight:600;padding-left:4px}.message-deleted{font-style:italic;opacity:.55;background:transparent!important;border:1px solid var(--border);color:var(--text-2)!important;font-weight:400!important;cursor:default;user-select:none}.msg-deleted-bubble{opacity:.7}.ctx-menu{position:fixed;z-index:9999;min-width:200px;padding:5px;background:var(--surface-modal);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-lg);transform-origin:top left;animation:ctx-appear var(--dur-fast) var(--ease-out)}@keyframes ctx-appear{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.ctx-item{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:0 12px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:var(--text-md);text-align:left;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}.ctx-item:hover,.ctx-item:focus-visible{background:var(--surface-2);outline:none}.ctx-item-icon{display:flex;flex-shrink:0;width:18px;color:var(--text-2)}.ctx-item-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctx-item--danger{color:var(--danger-text)}.ctx-item--danger .ctx-item-icon{color:inherit}.ctx-item--danger:hover,.ctx-item--danger:focus-visible{background:var(--danger-soft)}.ctx-sep{height:1px;margin:5px 10px;background:var(--border)}.emoji-picker{width:300px;max-height:min(360px,70vh);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.emoji-picker__category+.emoji-picker__category{margin-top:10px}.emoji-picker__category-title{padding:4px 8px 2px;font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-2)}.emoji-picker__grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr))}.emoji-picker__btn{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;border:0;background:transparent;border-radius:var(--radius-sm);font-size:20px;line-height:1;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}.emoji-picker__btn:hover,.emoji-picker__btn:focus-visible{background:var(--surface-2);outline:none}.chat-main .error.small{margin:0;padding:2px 14px 8px}.chat-error{padding-left:16px}.chat-load-sentinel{height:1px;flex-shrink:0}.chat-placeholder{height:100%;flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-2);font-size:var(--text-md)}.chat-empty{margin:auto;padding:32px 20px;text-align:center;color:var(--text-2);font-size:var(--text-md);user-select:none}.chat-day-separator{align-self:center;margin:2px 0 4px;padding:3px 12px;border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-2);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;pointer-events:none;user-select:none}.chat-root{position:relative}.chat-scroll-bottom{position:absolute;bottom:70px;right:16px;width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);z-index:10;transition:transform var(--dur-fast) var(--ease-out)}.chat-scroll-bottom:hover{background:var(--surface-3)}.chat-scroll-bottom:active{transform:scale(.98)}.chat-scroll-bottom:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.avatar{width:28px;height:28px;border-radius:50%;background:var(--avatar-bg, #1a2334);border:1px solid var(--ava-bd);display:grid;grid-template-rows:repeat(5,1fr);padding:4px;flex-shrink:0}.avatar-row{display:grid;grid-template-columns:repeat(5,1fr);gap:1px}.avatar-cell{border-radius:1px;opacity:0}.avatar-cell.on{opacity:1;background:var(--avatar-fg, #fff)}.avatar-self{width:31px;height:31px}.avatar-header{width:34px;height:34px}.panel-screen form{gap:16px}.contact-add-modal{width:min(540px,100%)}.group-modal{width:min(560px,100%)}.contact-add-form{width:100%;display:grid;gap:12px;padding:20px 18px 22px}.contact-add-form input{width:100%;min-height:54px;padding:0 18px;border:1px solid var(--border);border-radius:var(--radius-lg);outline:none;background:var(--surface-3);color:var(--text);font:inherit;font-size:var(--text-lg);transition:border-color var(--dur-base) var(--ease-out),background-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.contact-add-form input::placeholder{color:var(--text-2)}.contact-add-form input:focus{border-color:var(--accent);background:var(--surface-2);box-shadow:var(--focus-ring)}.contact-add-submit{width:100%;min-height:48px;border:0;border-radius:var(--radius);background:var(--accent);color:var(--on-accent);font:inherit;font-size:var(--text-lg);font-weight:800;cursor:pointer;box-shadow:var(--glow-accent);transition:transform var(--dur-fast) var(--ease-out)}.contact-add-submit:hover:not(:disabled){background:var(--accent-pressed)}.contact-add-submit:active:not(:disabled){transform:scale(.98)}.contact-add-submit:disabled{opacity:var(--opacity-disabled);background:var(--surface-2);color:var(--text-2);cursor:default;box-shadow:none}.contact-add-form .error{margin:0}.group-modal-form{width:100%;display:grid;gap:12px;padding:20px 18px 22px}.group-modal-form .subtitle{margin:0;text-align:left}.group-modal-form label{display:flex;flex-direction:column;gap:8px;font-size:var(--text-caption);font-weight:700;letter-spacing:.06em;color:var(--text-2);text-transform:uppercase}.group-modal-form input{width:100%;min-height:48px;padding:12px 16px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:var(--text-lg);outline:none}.group-modal-form input:focus{border-color:var(--accent);background:var(--surface-2);box-shadow:var(--focus-ring)}.group-modal-form .group-hint{margin:0;text-align:left}.group-friends-list{max-height:220px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);background:#00000029;padding:6px;display:grid;gap:4px}.group-empty{margin:8px;color:var(--text-2);font-size:var(--text-sm)}.group-modal-form .group-friend-row{display:flex;flex-direction:row;align-items:center;gap:10px;min-height:58px;padding:8px 10px;border-radius:var(--radius);color:var(--text);cursor:pointer;border:1px solid transparent;font-size:inherit;font-weight:inherit;letter-spacing:normal;text-transform:none}.group-friend-row:hover{background:var(--surface-2)}.group-friend-row.checked{background:var(--accent-soft)}.group-friend-row.disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.group-friend-row input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}.avatar-group-contact{width:36px;height:36px}.avatar-msg{width:16px;height:16px;flex-shrink:0}.message-sender-row{display:flex;align-items:center;gap:6px}.group-contact-copy{min-width:0;flex:1;display:grid;gap:2px}.group-contact-copy strong{overflow:hidden;color:var(--text);font-size:var(--text-md);text-overflow:ellipsis;white-space:nowrap}.group-contact-copy span{overflow:hidden;color:var(--text-2);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap}.group-check{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--border-hover);border-radius:50%;background:var(--surface-2);color:var(--text-2);font-size:var(--text-xl);font-weight:700}.group-friend-row.checked .group-check{border-color:transparent;background:var(--accent);color:var(--on-accent)}.group-modal-form button[type=submit]{width:100%;min-height:48px;margin-top:6px;justify-self:stretch}.group-hint{margin:-4px 0 0;text-align:left!important}.panel-actions{display:flex;gap:10px;margin-top:6px}.panel-actions button{flex:1}.secondary-btn{background:transparent;color:var(--text);border:1px solid var(--border)}.secondary-btn:hover{border-color:var(--border-hover)}.danger-btn{background:var(--danger)!important;color:var(--on-danger)!important}dialog.settings-modal,dialog.devices-modal{padding:0;max-width:none}.settings-modal,.devices-modal{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-lg);animation:rise-in var(--dur-slow) var(--ease-out) both}.settings-modal{width:min(496px,100%);max-height:min(760px,100%)}.settings-modal-header,.devices-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:6px 8px 6px 16px;border-bottom:1px solid var(--border);background:var(--surface-header);flex-shrink:0}.settings-modal-header h1,.devices-header h1{margin:0;flex:1;font-size:var(--text-xl);font-weight:700;letter-spacing:-.01em;text-align:left}.settings-close,.settings-back{flex:none;width:36px;height:36px}.settings-back{margin-left:-6px}.settings-nav-value{margin-left:auto;color:var(--text-3, var(--text-2))}.settings-body,.devices-body{width:100%;overflow-y:auto;padding:20px 18px 22px;display:flex;flex-direction:column;gap:20px}.settings-group{display:flex;flex-direction:column;gap:8px}.settings-group-title{margin:0 0 0 4px;font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:46px;padding:6px 4px;border-bottom:1px solid var(--border)}.settings-row-label{font-size:var(--text-sm);font-weight:600;color:var(--text-2)}.settings-row-value{font-size:var(--text-lg);font-weight:700;color:var(--text);letter-spacing:.03em}.settings-row-value.muted{font-size:var(--text-sm);font-weight:600;letter-spacing:normal;color:var(--text-2)}.settings-id{display:flex;align-items:center;gap:12px}.copy-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}.copy-btn:hover{border-color:var(--border-hover);background:var(--hairline-highlight)}.copy-btn:active{transform:scale(.98);transition:var(--dur-fast) var(--ease-out)}.settings-hint{margin:0;font-size:var(--text-sm);line-height:1.5;color:var(--text-2)}.settings-btn{min-height:48px;padding:0 16px;border:1px solid var(--border);border-radius:var(--radius-pill);background:transparent;color:var(--text);font:inherit;font-size:var(--text-md);font-weight:700;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.settings-btn:hover:not(:disabled){background:var(--surface-2)}.settings-btn:active:not(:disabled){transform:scale(.98);transition:var(--dur-fast) var(--ease-out)}.settings-btn:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.settings-btn.settings-btn-sm{min-height:32px;padding:0 10px;font-size:var(--text-caption);border-radius:var(--radius-sm)}.settings-nick-row{flex-direction:column;align-items:flex-start;gap:8px}.settings-nick-display{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.settings-nick-edit{display:flex;flex-direction:column;gap:8px;width:100%}.settings-nick-input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-3);color:var(--text);font:inherit;font-size:var(--text-md);box-sizing:border-box}.settings-nick-input:focus-visible{border-color:var(--accent);box-shadow:var(--focus-ring)}.settings-nick-actions{display:flex;gap:8px;flex-wrap:wrap}@keyframes rise-in{0%{opacity:0;transform:translateY(12px) scale(.98)}}.settings-overlay,.devices-overlay{position:fixed;inset:0;background:var(--overlay-backdrop);display:flex;align-items:center;justify-content:center;z-index:200;padding:20px;animation:overlay-fade-in var(--dur-base) var(--ease-out) both}@media (max-width: 900px){.chat-layout{grid-template-columns:minmax(184px,230px) 1fr}}@media (max-width: 640px){:root{--header-h: 56px}.conv-header.messenger-header{display:flex}.messenger-rail{display:none}.screen .auth-form{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.messenger-split{display:block}.messenger-contacts,.messenger-chat{height:100%}.messenger-split.view-conversations{padding:0}.messenger-split.view-conversations .messenger-contacts{border:0;border-radius:0;background:transparent;box-shadow:none}.messenger-split.view-conversations .messenger-chat,.messenger-split.view-chat .messenger-contacts{display:none}.chat-layout{grid-template-columns:76px 1fr}.sidebar-header{justify-content:center;padding:10px 6px}.own-userid{display:none}.contact-item{justify-content:center;padding:10px 6px}.contact-name{display:none}.add-contact-form{grid-template-columns:1fr;justify-items:center}.add-contact-form input{display:none}.chat-header{padding:10px 12px}.message{max-width:86%}.conv-header{padding:10px 12px}.contact-add-form{padding-top:16px}.conv-list{padding-bottom:80px}.fab{width:48px;height:48px}.fab-stack{right:12px;bottom:12px}.settings-overlay{align-items:end;padding:10px}.settings-modal{max-height:min(700px,calc(100% - 10px));border-radius:var(--radius-xl) var(--radius-xl) var(--radius-lg) var(--radius-lg)}}.retry-queue-badge{position:fixed;top:8px;right:12px;z-index:9999;background:var(--surface-2, #1a2334);color:var(--text-2, #93a1b8);border:1px solid var(--border, rgba(235, 240, 248, .085));border-radius:var(--radius-pill);padding:4px 10px;font-size:var(--text-xs);font-weight:500;pointer-events:none}.error-boundary-screen{display:flex;align-items:center;justify-content:center;height:100%;background:var(--bg, #080b12);padding:24px}.error-boundary-box{background:var(--surface, #131a29);border:1px solid var(--border, rgba(235, 240, 248, .085));border-radius:var(--radius-lg);padding:28px 24px;max-width:360px;width:100%;text-align:center;display:flex;flex-direction:column;gap:12px}.error-boundary-title{color:var(--text, #eef1f7);font-size:var(--text-lg);font-weight:600;margin:0}.error-boundary-detail{color:var(--text-2, #93a1b8);font-size:var(--text-sm);margin:0;word-break:break-word}.error-boundary-btn{margin-top:4px;padding:10px 20px;background:var(--accent);color:var(--on-accent);border:none;border-radius:var(--radius-pill);font-size:var(--text-md);font-weight:600;cursor:pointer;transition:opacity var(--dur-base) var(--ease-out)}.error-boundary-btn:hover{opacity:.85}.error-boundary-btn:active{transform:scale(.98)}.input-form{display:flex;align-items:center;gap:6px;padding:5px 5px 5px 12px;border:1px solid var(--fld-bd);border-radius:var(--radius-pill);background:var(--fld-bg);box-shadow:var(--isl-sh),inset 0 1px 0 var(--hairline-highlight);flex-shrink:0;transition:border-color var(--dur-base) var(--ease-out)}.input-form textarea{flex:1;min-width:0;min-height:32px;max-height:120px;padding:6px 4px;border:0;background:transparent;color:var(--text);font-size:var(--text-md);line-height:1.35;outline:none;resize:none;overflow-y:hidden;font-family:inherit}.input-form:focus-within{border-color:var(--accent)}.input-form button[type=submit],.input-form button.chat-send-btn{flex-shrink:0;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--fld-bd);border-radius:50%;background:transparent;color:var(--text);cursor:pointer;transition:background-color var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.input-form button[type=submit] svg,.input-form button.chat-send-btn svg{display:block;transform:translate(1px)}.input-form button[type=submit]:hover:not(:disabled),.input-form button.chat-send-btn:hover:not(:disabled){background:var(--surface-2)}.input-form button[type=submit]:active:not(:disabled),.input-form button.chat-send-btn:active:not(:disabled){transform:scale(.94)}.input-form button[type=submit]:disabled,.input-form button.chat-send-btn:disabled{opacity:var(--opacity-disabled);cursor:default}.chat-attach-btn{flex-shrink:0}.chat-attach-btn:disabled{opacity:var(--opacity-disabled);cursor:default}.chat-emoji-btn{flex-shrink:0}.settings-toggle-row{cursor:pointer;border-bottom:1px solid var(--border)}.settings-toggle-row:hover{background:var(--surface-2);border-radius:var(--radius-sm)}.settings-toggle{-webkit-appearance:none;appearance:none;flex-shrink:0;width:46px;height:27px;border-radius:var(--radius-pill);background:var(--surface-hover);border:1.5px solid var(--border-strong);position:relative;cursor:pointer;transition:background-color var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out);outline:none}.settings-toggle:after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:var(--text-3);box-shadow:var(--shadow-sm);transition:transform var(--dur-base) var(--ease-out),background-color var(--dur-base) var(--ease-out)}.settings-toggle:checked{background:var(--accent);border-color:var(--accent)}.settings-toggle:checked:after{transform:translate(19px);background:var(--on-accent)}.settings-toggle:focus-visible{box-shadow:var(--focus-ring)}.settings-menu-body{padding:14px 16px 18px;gap:26px}.settings-profile{display:flex;align-items:center;gap:12px;padding:2px 0 4px}.settings-avatar{width:46px;height:46px;border-radius:50%;flex-shrink:0}.settings-profile-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.settings-profile .settings-name-row{display:flex;align-items:center;gap:8px}.settings-profile .settings-name-input{flex:1;min-width:0;min-height:30px;margin-left:-6px;padding:0 6px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text);font-size:var(--text-lg);font-weight:700;letter-spacing:-.01em;outline:none;transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}.settings-profile .settings-name-input:hover{border-color:var(--border)}.settings-profile .settings-name-input:focus{border-color:var(--accent);background:var(--surface-2)}.settings-profile-id{display:flex;align-items:center;gap:6px;color:var(--text-2);font-size:var(--text-sm)}.settings-profile-id-label{font-weight:700;letter-spacing:.05em}.settings-profile-id-value{font-weight:600;letter-spacing:.03em;color:var(--text)}.settings-profile-id .copy-btn{width:24px;height:24px;border:0;color:var(--text-2)}.settings-menu-body .settings-group{gap:2px}.settings-menu-body .settings-group-title{margin:0 0 8px 2px}.settings-menu-body .settings-row,.settings-menu-body .settings-nav-row{display:flex;align-items:center;gap:12px;min-height:44px;padding:11px 2px;border-bottom:none}.settings-menu-body .settings-group>*+*{border-top:1px solid var(--hairline, var(--border))}.settings-menu-body .settings-group-title+*{border-top:none}.settings-menu-body .settings-toggle-row{cursor:pointer}.settings-menu-body .settings-toggle-row:hover{background:var(--surface-2);border-radius:var(--radius-sm)}.settings-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.settings-menu-body .settings-row-label{font-size:var(--text-md);font-weight:500;color:var(--text)}.settings-menu-body .settings-hint{font-size:var(--text-caption);line-height:1.4}.settings-menu-body .settings-row-value.muted{font-size:var(--text-sm)}.settings-nav-row{width:100%;border:0;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}.settings-nav-row:hover:not(:disabled){background:var(--surface-2);border-radius:var(--radius-sm)}.settings-nav-row:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.settings-nav-row:focus-visible{outline:none;box-shadow:inset var(--focus-ring);border-radius:var(--radius-sm)}.settings-nav-row--accent .settings-row-label{color:var(--accent);font-weight:600}.settings-nav-row--danger .settings-row-label{color:var(--danger-text);font-weight:600}.settings-nav-row--danger:hover:not(:disabled){background:var(--danger-soft)}.settings-nav-chevron{display:inline-flex;color:var(--text-2);flex-shrink:0;margin-left:auto}.settings-menu-body .settings-row-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;color:var(--text-2)}.settings-menu-body .settings-row-icon--danger{color:var(--danger-text)}.settings-menu-body .settings-row>.settings-row-label{flex:1;min-width:0}.settings-menu-body .settings-row--stacked{align-items:flex-start}.settings-menu-body .settings-row--stacked .settings-row-main{gap:6px}.settings-quality-group{display:grid;grid-template-columns:1fr 1fr;gap:6px}.settings-quality-group .theme-radio-option{justify-content:center;padding:6px 10px;text-align:center}.theme-radio-group{display:flex;gap:6px}.theme-radio-option{display:flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:500;cursor:pointer;border:0;color:var(--text-2);background:transparent;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out);user-select:none}.theme-radio-option:hover{color:var(--text)}.theme-radio-option.active{color:var(--text);background:var(--surface-2)}.theme-radio-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.media-bubble{position:relative;max-width:min(68vw,340px);border-radius:18px 18px 18px 6px;overflow:hidden;background:var(--bubble-in);border:1px solid var(--border);box-shadow:var(--bub-sh),inset 0 1px 0 var(--hairline-highlight);cursor:pointer;user-select:none;transition:filter var(--dur-base) var(--ease-out)}.media-bubble.outgoing{border-bottom-left-radius:18px;border-bottom-right-radius:6px}.media-bubble:hover{filter:brightness(1.06)}.media-bubble--done{cursor:default}.media-bubble--done:hover{filter:none}.media-bubble.outgoing{background:var(--bubble-out);color:var(--on-bubble-out);border-color:var(--bub-out-ln)}.media-thumb-wrap{position:relative;width:100%;line-height:0}.media-thumb{width:100%;max-height:220px;object-fit:cover;display:block;filter:brightness(.55) blur(1px)}.media-icon-placeholder{display:flex;align-items:center;justify-content:center;min-height:72px;font-size:var(--text-display)}.media-type-icon{line-height:1}.media-meta{display:flex;align-items:baseline;gap:8px;padding:6px 10px 8px;flex-wrap:wrap}.media-filename{font-size:var(--text-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;opacity:.9}.media-size,.media-duration{font-size:var(--text-xs);font-weight:500;opacity:.6;white-space:nowrap}.media-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#0000006b;padding:10px}.media-download-hint{font-size:var(--text-caption);font-weight:600;color:#fff;text-align:center;opacity:.85}@keyframes media-spin{to{transform:rotate(360deg)}}.media-spinner{display:block;width:30px;height:30px;border:3px solid rgb(255 255 255 / .22);border-top-color:var(--accent);border-radius:50%;animation:media-spin .72s linear infinite}.media-overlay--error{background:#500a0ab8}.media-error-text{font-size:var(--text-caption);font-weight:600;color:var(--danger-error);text-align:center}.media-retry-hint{font-size:var(--text-xs);color:var(--danger-hover);text-align:center;opacity:.8}.media-content{width:100%;line-height:0}.media-image-full{width:100%;max-height:420px;object-fit:contain;display:block;border-radius:var(--radius);background:#000}.media-video-full{width:100%;max-height:360px;display:block;background:#000;border-radius:var(--radius)}.media-audio-player{display:flex;align-items:center;gap:10px;padding:10px 12px;min-height:52px}.media-play-btn{flex-shrink:0;width:40px;height:40px;background:var(--accent);color:var(--on-accent)}.media-play-btn:hover{background:var(--accent-pressed);color:var(--on-accent)}.media-bubble.outgoing .media-play-btn{background:#0000001f;color:var(--on-bubble-out)}.media-bubble.outgoing .media-play-btn:hover{background:#0003;color:var(--on-bubble-out)}.media-doc-row{display:flex;align-items:center;gap:8px;padding:10px 12px;min-height:56px}.media-doc-row .media-filename{flex:1}.media-doc-link{flex-shrink:0;padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--accent);font-size:var(--text-caption);font-weight:700;text-decoration:none;white-space:nowrap;transition:background-color var(--dur-base) var(--ease-out)}.media-doc-link:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.media-bubble.outgoing .media-filename,.media-bubble.outgoing .media-size,.media-bubble.outgoing .media-duration{color:var(--on-bubble-out)}.media-bubble.outgoing .media-doc-link{border-color:#00000040;color:var(--on-bubble-out)}.media-bubble.outgoing .media-doc-link:hover{background:#0000001a}@media (max-width: 640px){.media-bubble{max-width:min(78vw,320px)}}.session-dots-chip{display:flex;align-items:center;gap:4px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-pill);background:transparent;cursor:pointer;transition:background var(--dur-base) var(--ease-out);color:var(--text-2);font-size:var(--text-xs);font-weight:600}.session-dots-chip:hover{background:var(--surface-2)}.session-dot{width:8px;height:8px;border-radius:50%;background:var(--text-2);flex-shrink:0}.session-dot--current{background:var(--accent);box-shadow:0 0 0 1px var(--bg),0 0 0 2px var(--accent)}.session-dots-overflow{margin-left:2px}.devices-modal{width:min(480px,100%);max-height:min(680px,100%)}.devices-section-title{margin:0 0 8px 4px;font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}.devices-mode-group{display:flex;flex-direction:column;gap:8px}.devices-mode-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.devices-mode-option:has(input:checked){background:var(--surface-2)}.devices-mode-option input[type=radio]{accent-color:var(--accent);width:16px;height:16px;flex-shrink:0;cursor:pointer}.devices-mode-label{font-size:var(--text-sm);font-weight:600;cursor:pointer}.devices-mode-hint{margin:2px 0 0;font-size:var(--text-caption);color:var(--text-2);line-height:1.5}.devices-list{display:flex;flex-direction:column;gap:8px}.devices-session-row{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-3)}.devices-session-info{flex:1;min-width:0}.devices-session-label{font-size:var(--text-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.devices-session-meta{font-size:var(--text-xs);color:var(--text-2);margin-top:2px}.devices-session-badges{display:flex;align-items:center;gap:6px;margin-top:6px}.devices-this-badge{font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:2px 6px}.devices-revoke-btn{flex-shrink:0;padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text-2);font-size:var(--text-caption);font-weight:600;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.devices-revoke-btn:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.devices-revoke-btn:active:not(:disabled){transform:scale(.98)}.devices-revoke-btn:disabled{opacity:var(--opacity-disabled);cursor:default}.devices-error{font-size:var(--text-sm);color:var(--danger);padding:10px 12px;border:1px solid var(--danger);border-radius:var(--radius)}.devices-loading{font-size:var(--text-sm);color:var(--text-2);text-align:center;padding:24px 0}.call-overlay{position:fixed;inset:0;z-index:300;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:clamp(48px,12vh,120px) 24px clamp(36px,9vh,88px);animation:fade-in var(--dur-slow) var(--ease-out) both}.call-body{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;margin-top:auto}.call-peer{font-size:var(--text-3xl);font-weight:800;letter-spacing:-.01em;color:var(--text);max-width:min(80vw,460px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.call-status{font-size:var(--text-lg);font-weight:600;color:var(--text-2);min-height:1.4em}.call-duration{font-size:var(--text-3xl);font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:2px}.call-reconnecting-badge{margin-top:6px;font-size:var(--text-caption);color:color-mix(in srgb,var(--accent) 80%,var(--text-2));font-weight:600}.call-recording-badge{margin-top:6px;display:flex;align-items:center;gap:6px;font-size:var(--text-caption);color:var(--danger);font-weight:600}.call-recording-badge--peer{color:var(--text-2)}.call-recording-dot{width:8px;height:8px;border-radius:50%;background:var(--danger);animation:call-recording-pulse 1.6s ease-in-out infinite}@keyframes call-recording-pulse{0%,to{opacity:1}50%{opacity:.35}}.call-recordings{margin-top:12px;width:min(86vw,360px);display:flex;flex-direction:column;gap:8px;text-align:left}.call-recordings__title{font-size:var(--text-caption);font-weight:600;color:var(--text-2)}.call-recording-item{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-top:1px solid var(--border)}.call-recording-item__label{font-size:var(--text-sm);color:var(--text-2)}.call-recording-item__btn{align-self:flex-start;background:none;border:none;padding:0;color:var(--accent);font-size:var(--text-sm);font-weight:600;cursor:pointer}.call-recording-item__status{font-size:var(--text-sm);color:var(--text-2)}.call-recording-item__status--error{color:var(--danger)}.call-recording-item__text{margin:0;font-size:var(--text-sm);color:var(--text);white-space:pre-wrap}.call-recording-item__source{color:var(--text-2)}.call-video-mode{margin-top:6px;display:flex;gap:4px;border:1px solid var(--border);border-radius:999px;padding:2px}.call-video-mode__btn{background:none;border:none;border-radius:999px;padding:4px 12px;font-size:var(--text-caption);color:var(--text-2);cursor:pointer}.call-video-mode__btn--active{background:var(--surface-2);color:var(--text)}.call-summary{margin-top:12px;width:min(86vw,360px);display:flex;flex-direction:column;gap:4px;text-align:left;padding-top:8px;border-top:1px solid var(--border)}.call-summary__btn{align-self:flex-start;background:none;border:none;padding:0;color:var(--accent);font-size:var(--text-sm);font-weight:600;cursor:pointer}.call-summary__btn:disabled{color:var(--text-2);cursor:default}.call-summary__title{font-size:var(--text-caption);font-weight:600;color:var(--text-2)}.call-summary__text{margin:0;font-size:var(--text-sm);color:var(--text);white-space:pre-wrap}.call-summary__status{font-size:var(--text-sm);color:var(--text-2)}.call-summary__status--error{color:var(--danger)}.call-error{margin-top:4px;font-size:var(--text-sm);color:var(--danger);max-width:min(80vw,460px);display:flex;flex-direction:column;gap:8px}.call-settings-link{background:none;border:none;padding:0;color:var(--accent);font-size:var(--text-sm);font-weight:600;cursor:pointer;text-align:left}.call-tune{width:min(86vw,308px);display:flex;flex-direction:column;gap:18px;padding:6px}.call-tune__section{display:flex;flex-direction:column;gap:8px}.call-tune__presets{display:grid;grid-template-columns:1fr 1fr;gap:8px}.call-tune__preset{display:flex;flex-direction:column;gap:1px;border:0;padding:10px 12px 9px;border-radius:var(--radius);background:transparent;color:var(--text-2);text-align:left;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.call-tune__preset b{font-size:var(--text-sm);font-weight:630;color:var(--text)}.call-tune__preset i{font-style:normal;font-size:10.5px;color:var(--text-3, var(--text-2))}.call-tune__preset:hover b{color:var(--text)}.call-tune__preset--active{background:var(--surface-2);color:var(--text)}.call-tune__preset:focus-visible{outline:none;box-shadow:var(--focus-ring)}.call-tune__row{display:flex;flex-direction:column;align-items:stretch;gap:8px}.call-tune__label{font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--text-3, var(--text-2))}.call-tune__row:not(.call-tune__row--denoise){display:grid;grid-template-columns:1fr auto;grid-template-areas:"label label" "slider value";column-gap:12px;row-gap:8px}.call-tune__row:not(.call-tune__row--denoise) .call-tune__label{grid-area:label}.call-tune__slider{grid-area:slider;flex:1;min-width:0;accent-color:var(--accent);cursor:pointer}.call-tune__slider:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-pill)}.call-tune__value{grid-area:value;align-self:center;min-width:72px;text-align:right;font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--text)}.call-tune__row--denoise{gap:8px}.call-denoise{display:flex;flex-direction:column;gap:2px}.call-denoise__opt{display:flex;align-items:center;gap:11px;border:0;padding:8px 10px;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:12.5px;font-weight:500;text-align:left;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}.call-denoise__opt:before{content:"";width:14px;height:14px;flex:none;border-radius:50%;border:1.5px solid var(--border-strong);transition:border-color var(--dur-fast) var(--ease-out)}.call-denoise__opt:hover:not(:disabled){background:var(--surface-2)}.call-denoise__opt--active{background:var(--surface-2);color:var(--text)}.call-denoise__opt--active:before{border-color:var(--accent);background:radial-gradient(circle,var(--accent) 0 5px,transparent 5px)}.call-denoise__opt:disabled{opacity:.5;cursor:not-allowed}.call-denoise__opt:focus-visible{outline:none;box-shadow:var(--focus-ring)}.call-denoise__soon{margin-left:auto;font-size:var(--text-xs);font-weight:500;opacity:.7}.call-tune__note{margin:-6px 0 0;font-size:var(--text-xs);color:var(--text-3, var(--text-2));line-height:1.5}.call-actions{display:flex;align-items:center;justify-content:center;gap:clamp(28px,9vw,72px);margin-top:auto}.call-btn{width:64px;height:64px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:50%;background:var(--surface);box-shadow:var(--isl-sh);color:var(--text);cursor:pointer;transition:background-color var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.call-btn:hover{transform:translateY(-1px)}.call-btn:active{transform:translateY(0)}.call-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.call-btn--accept{background:var(--accent);color:var(--on-accent)}.call-btn--accept:hover{background:var(--accent-pressed)}.call-btn--decline{background:var(--danger);color:var(--on-danger)}.call-btn--decline:hover{background:var(--danger-hover)}.call-btn--mute.call-btn--active{background:var(--text);color:var(--bg)}.call-btn--camera.call-btn--active,.call-btn--screen.call-btn--active{background:var(--surface-2);color:var(--text)}.call-btn--record.call-btn--active{background:var(--danger);color:var(--on-danger)}.call-btn--record:disabled{opacity:.5;cursor:default}.call-video-stage{position:relative;width:100%;max-width:720px;flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center}.call-video-remote{width:100%;height:100%;max-height:60vh;object-fit:cover;border-radius:var(--radius-xl);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);background:var(--surface-2)}.call-video-badges{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;z-index:2}.call-video-badges .call-recording-badge{margin:0;height:24px;padding:0 10px;border-radius:var(--radius-pill);background:#0a0e16b8;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:var(--text);font-size:var(--text-caption)}.call-video-badges .call-recording-badge--peer{color:var(--text-2)}.call-video-local{position:absolute;right:12px;bottom:12px;width:clamp(96px,22vw,160px);aspect-ratio:3 / 4;object-fit:cover;border-radius:var(--radius-lg);border:1px solid var(--border-strong);box-shadow:var(--isl-sh);background:var(--surface-2);transform:scaleX(-1)}.call-btn--dismiss{width:auto;height:44px;border-radius:var(--radius-xl);padding:0 24px;font:inherit;font-size:var(--text-lg)}.call-minimize-btn{position:absolute;top:max(16px,env(safe-area-inset-top));right:16px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-2);cursor:pointer;border-radius:var(--radius);transition:color var(--dur-base) var(--ease-out),background-color var(--dur-base) var(--ease-out)}.call-minimize-btn:hover{background:var(--surface-2);color:var(--text)}.call-minimize-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.call-pill{position:fixed;top:max(8px,env(safe-area-inset-top,0px) + 8px);left:50%;transform:translate(-50%);z-index:200;display:flex;align-items:center;gap:8px;padding:0 6px 0 14px;height:44px;max-width:min(calc(100vw - 24px),480px);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-pill);animation:call-pill-in var(--dur-base) var(--ease-out) both}@keyframes call-pill-in{0%{opacity:0;transform:translate(-50%) translateY(-6px)}}.call-pill__label{font-size:var(--text-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);flex-shrink:0}.call-pill__name{font-size:var(--text-sm);font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 0;max-width:120px}.call-pill__duration{font-size:var(--text-sm);font-weight:600;color:var(--text-2);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:34px;text-align:right}.call-pill__btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:var(--surface-3);color:var(--text);cursor:pointer;flex-shrink:0;transition:background-color var(--dur-base) var(--ease-out)}.call-pill__btn:hover{background:var(--border-hover)}.call-pill__btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.call-pill__btn--muted{background:var(--text);color:var(--bg)}.call-pill__btn--active{background:var(--surface-2);color:var(--text)}.call-pill__btn--hangup,.call-pill__btn--recording{background:var(--danger);color:var(--on-danger)}.call-pill__btn:disabled{opacity:.5;cursor:default}.call-pill__recording-dot{width:8px;height:8px;border-radius:50%;background:var(--danger);flex-shrink:0;animation:call-recording-pulse 1.6s ease-in-out infinite}.call-pill__btn--hangup:hover{background:var(--danger-hover)}.call-pill__btn--accept{background:var(--accent);color:var(--on-accent)}.call-pill__btn--accept:hover{background:var(--accent-pressed)}.call-pill__expand{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--text-2);cursor:pointer;flex-shrink:0;border-radius:var(--radius);transition:color var(--dur-base) var(--ease-out),background-color var(--dur-base) var(--ease-out)}.call-pill__expand:hover{background:var(--surface-3);color:var(--text)}.call-pill__expand:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-color-scheme: light){.call-pill{background:var(--surface);border-color:var(--border)}}[data-theme=light] .call-pill{background:var(--surface);border-color:var(--border)}.chat-call-btn:disabled{opacity:var(--opacity-disabled);cursor:default}.chat-call-inline{display:flex;align-items:center;gap:8px;flex-shrink:0}.chat-call-inline__status{font-size:var(--text-xs);font-weight:600;color:var(--text-2);white-space:nowrap;font-variant-numeric:tabular-nums;max-width:140px;overflow:hidden;text-overflow:ellipsis}.chat-call-inline__status--error{color:var(--danger)}.search-overlay{position:absolute;inset:0;z-index:5;background:var(--surface);display:flex;flex-direction:column;overflow:hidden}.search-header{flex-shrink:0;display:flex;align-items:center;padding:8px 10px 4px;background:transparent}.search-input-wrap{flex:1;position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:14px;color:var(--text-2);pointer-events:none}.search-input{width:100%;min-height:40px;padding:0 40px;border-radius:var(--radius-pill);border:1px solid var(--fld-bd);background:var(--fld-bg);color:var(--text);font-size:var(--text-md);outline:none}.search-input:focus{border-color:var(--accent)}.search-input::-webkit-search-cancel-button,.search-input::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.search-clear{position:absolute;right:4px;width:32px;height:32px}.search-results{flex:1;overflow-y:auto;padding:8px 0}.search-empty{padding:32px 24px;text-align:center;color:var(--text-2);font-size:var(--text-md)}.search-result-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;border:none;background:transparent;color:var(--text);font:inherit;font-size:var(--text-md);text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.search-result-item:hover{background:var(--surface-2)}.search-result-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.search-result-content{flex:1;min-width:0}.search-result-title{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.search-result-name{font-weight:700;font-size:var(--text-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-time{font-size:var(--text-xs);color:var(--text-2);flex-shrink:0}.search-result-snippet{margin:2px 0 0;font-size:var(--text-sm);color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-sender{font-weight:600}.search-highlight,mark{background:var(--accent-soft);color:var(--accent);border-radius:2px;padding:0 1px}.ephemeral-banner{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius);color:var(--accent);font-size:var(--text-sm);font-weight:600}.key-change-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--danger-soft);border:1px solid var(--danger);border-radius:var(--radius);color:var(--danger-hover);font-size:var(--text-sm)}.key-change-banner__text{flex:1;font-weight:600}.key-change-banner__verify{min-width:44px;min-height:44px;padding:0 14px;border:none;border-radius:var(--radius-sm);background:var(--danger);color:var(--on-danger);font:inherit;font-size:var(--text-sm);font-weight:700;cursor:pointer;flex-shrink:0}.key-change-banner__verify:hover{background:var(--danger-hover)}.key-change-banner__verify:focus-visible{outline:2px solid var(--on-danger);outline-offset:2px}@keyframes search-match-flash{0%{box-shadow:0 0 0 3px var(--accent)}70%{box-shadow:0 0 0 3px var(--accent)}to{box-shadow:none}}.message.search-match{animation:search-match-flash 2s ease-out both;border-radius:var(--radius-sm)}.safety-number{font-family:Menlo,Consolas,Courier New,monospace;font-size:var(--text-md);font-variant-numeric:tabular-nums;letter-spacing:.04em;padding:12px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);word-break:break-all}.key-verify-sheet__accept{border-color:color-mix(in srgb,var(--danger) 35%,transparent)!important;color:var(--danger-text)!important}.key-verify-sheet__accept:not(:disabled):hover{background:var(--danger-soft)!important;color:var(--danger-hover)!important}@keyframes fade-in{0%{opacity:0}}.lightbox{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;animation:fade-in var(--dur-base) var(--ease-out) both}.lightbox__backdrop{position:absolute;inset:0;background:#000000eb;cursor:zoom-out}.lightbox__img-wrap{position:relative;z-index:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:grab;user-select:none}.lightbox__img-wrap--dragging{cursor:grabbing}.lightbox__img{max-width:100%;max-height:100%;object-fit:contain;will-change:transform;transform-origin:center center;pointer-events:none;user-select:none}.lightbox__toolbar{position:absolute;top:max(12px,env(safe-area-inset-top));right:12px;z-index:2;display:flex;align-items:center;gap:8px}.lightbox__toolbar-btn,.lightbox__zoom-btn,.media-save-btn{display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:var(--scrim);color:#fff;cursor:pointer;backdrop-filter:blur(4px);transition:background-color var(--dur-base) var(--ease-out)}.lightbox__toolbar-btn:hover,.lightbox__zoom-btn:hover,.media-save-btn:hover{background:color-mix(in srgb,var(--scrim) 70%,black)}.lightbox__toolbar-btn:focus-visible,.lightbox__zoom-btn:focus-visible,.media-save-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lightbox__toolbar-btn{width:44px;height:44px;text-decoration:none;flex-shrink:0}.lightbox__zoom-controls{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));right:12px;z-index:2;display:flex;flex-direction:column;gap:6px}.lightbox__zoom-btn{width:40px;height:40px}.media-content__image-wrap{position:relative;line-height:0}.media-image-open-btn{display:block;width:100%;padding:0;border:none;background:none;cursor:zoom-in;line-height:0}.media-image-open-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.media-save-btn{position:absolute;bottom:8px;right:8px;width:34px;height:34px;text-decoration:none;z-index:1}.media-save-btn--top{top:8px;bottom:auto}.media-save-btn--inline{position:static;margin-left:auto;background:transparent;color:currentColor;backdrop-filter:none;opacity:.6;flex-shrink:0}.media-save-btn--inline:hover{background:transparent;opacity:1}.media-bubble.outgoing .media-save-btn{background:#00000038}.media-bubble.outgoing .media-save-btn:hover{background:#0006}.media-content__video-wrap{position:relative;line-height:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
