@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/plex-sans-thai-300-thai-Bzg9IkD6.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:300;font-display:swap;src:url(/assets/plex-sans-thai-300-latin-DuvW4Kwi.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/plex-sans-thai-400-thai-Bt1rR4gi.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/plex-sans-thai-400-latin-CwmoKdEh.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/plex-sans-thai-500-thai-BrMc1XKn.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/plex-sans-thai-500-latin-DQcnnbdd.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/plex-sans-thai-600-thai-DvfsyWAn.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/plex-sans-thai-600-latin-BR-dhaTH.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/plex-sans-thai-700-thai-0moayseG.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/plex-sans-thai-700-latin-Ct-BCS9V.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-main: "IBM Plex Sans Thai", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--accent: #0f766e;--accent-deep: #115e59;--accent-soft: #e6f4f1;--accent-tint: #f0fdf9;--accent-glow: rgba(15, 118, 110, .15);--bubble-outgoing: #d1f0e8;--bubble-outgoing-border: #b5e3d8;--bubble-incoming: #ffffff;--bubble-meta: #4b5a67;--bg-app: #f4f6f8;--bg-surface: #ffffff;--bg-subtle: #f8fafc;--bg-chat-stream: #eef2f5;--bg-chat-pattern: none;--text-main: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--text-on-accent: #ffffff;--border-light: #e2e8f0;--border-subtle: #f1f5f9;--status-ok: #10b981;--status-warn: #f59e0b;--status-danger: #ef4444;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-pill: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px -1px rgba(0, 0, 0, .08);--shadow-lg: 0 12px 32px -4px rgba(0, 0, 0, .12);--shadow-drawer: 0 0 28px rgba(0, 0, 0, .18);--accent-text: var(--accent-deep);--accent-line: rgba(15, 118, 110, .25);--on-solid: #ffffff;--text-faint: #94a3b8;--bg-muted: #f1f5f9;--bg-track: #e2e8f0;--bg-disabled: #cbd5e1;--border-strong: #cbd5e1;--danger-bg: #fef2f2;--danger-bg-strong: #fee2e2;--danger-border: #fecaca;--danger-text: #b91c1c;--danger-solid: #dc2626;--danger-solid-hover: #b91c1c;--warn-bg: #fef3c7;--warn-text: #7c3a06;--warn-border: #fde68a;--ok-bg: #dcfce7;--ok-text: #15803d;--ok-border: #d1fae5;--info-bg: #eff6ff;--info-text: #0369a1;--info-solid: #2563eb;--link: #0b57d0;--ink-solid: #0f172a;--hover-tint: rgba(0, 0, 0, .05);--hover-tint-strong: rgba(0, 0, 0, .1);--glass-bg: rgba(255, 255, 255, .88);--chat-pattern-ink: #d5dbe2;--bg-chat-size: 16px 16px;--fs: 1;color-scheme:light}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;height:100dvh;margin:0;padding:0;overflow:hidden;font-family:var(--font-main);color:var(--text-main);background:var(--bg-app);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;border:none;background:none;outline:none}button:disabled{cursor:not-allowed;opacity:.55}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;height:100dvh;gap:16px;color:var(--text-secondary)}.spinner{width:36px;height:36px;border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.passcode-screen{display:flex;align-items:center;justify-content:center;min-height:100%;min-height:100dvh;padding:20px;background:radial-gradient(circle at 50% 20%,#1e3a47,#0d1a24)}.passcode-card{width:100%;max-width:390px;background:var(--bg-surface);border-radius:28px;padding:36px 28px;box-shadow:0 20px 60px #00000059;display:flex;flex-direction:column;align-items:center;text-align:center}.brand-badge{margin-bottom:14px}.brand-icon{width:60px;height:60px;border-radius:20px;background:var(--accent-soft);color:var(--accent-text);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px var(--accent-glow)}.eyebrow-tag{font-size:calc(10px * var(--fs, 1));font-weight:700;letter-spacing:1.5px;color:var(--accent-text);margin-bottom:6px}.passcode-title{font-size:calc(22px * var(--fs, 1));font-weight:700;color:var(--text-main);margin-bottom:8px}.passcode-desc{font-size:calc(13px * var(--fs, 1));color:var(--text-muted);line-height:1.5;margin-bottom:24px}.passcode-form{width:100%;display:flex;flex-direction:column;gap:16px}.input-group{text-align:left}.input-group label{display:block;font-size:calc(12px * var(--fs, 1));font-weight:600;color:var(--text-secondary);margin-bottom:6px}.input-group input{width:100%;padding:14px 16px;background:var(--bg-subtle);border:1.5px solid var(--border-light);border-radius:var(--radius-md);font-size:calc(16px * var(--fs, 1));letter-spacing:2px;color:var(--text-main);outline:none;transition:all .2s ease}.input-group input:focus{background:var(--bg-surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.error-alert{display:flex;align-items:center;gap:8px;background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger-text);padding:10px 14px;border-radius:var(--radius-sm);font-size:calc(12px * var(--fs, 1));text-align:left}.submit-btn{width:100%;padding:14px;background:var(--accent);color:var(--text-on-accent);border-radius:var(--radius-md);font-size:calc(15px * var(--fs, 1));font-weight:600;margin-top:8px;box-shadow:0 4px 14px var(--accent-glow);transition:all .2s ease}.submit-btn:hover:not(:disabled){background:var(--accent-deep);transform:translateY(-1px)}.submit-btn:active:not(:disabled){transform:translateY(0)}.passcode-footnote{display:flex;align-items:flex-start;gap:8px;margin-top:22px;font-size:calc(11px * var(--fs, 1));line-height:1.5;color:var(--text-muted);text-align:left}.auth-tabs-segmented{display:flex;width:100%;background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:var(--radius-pill);padding:4px;margin-bottom:20px;gap:4px}.auth-tab-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;font-size:calc(13px * var(--fs, 1));font-weight:500;color:var(--text-muted);border-radius:var(--radius-pill);transition:all .2s ease}.auth-tab-btn.active{background:var(--bg-surface);color:var(--accent-text);font-weight:600;box-shadow:var(--shadow-sm)}.auth-device-pill{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--accent-soft);color:var(--accent-text);border-radius:var(--radius-pill);font-size:calc(12px * var(--fs, 1));margin-top:2px;width:100%;box-sizing:border-box}.auth-device-pill strong{font-weight:600}.section-refresh-btn{margin-left:auto;display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-pill);color:var(--text-muted);transition:all .2s ease}.section-refresh-btn:hover{background:var(--border-subtle);color:var(--text-main)}.sync-action-row{display:flex;align-items:center;justify-content:space-between}.sync-now-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--accent-soft);color:var(--accent-text);border-radius:var(--radius-pill);font-size:calc(12px * var(--fs, 1));font-weight:600;transition:all .2s ease}.sync-now-btn:hover:not(:disabled){background:var(--accent);color:var(--on-solid)}.sync-error-hint{display:block;color:var(--danger-text);margin-top:2px}.setting-hint{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;background:var(--bg-subtle);border-radius:var(--radius-sm);font-size:calc(12px * var(--fs, 1));color:var(--text-muted);line-height:1.4;margin:4px 0}.status-pill.blue{background:var(--info-bg);color:var(--link)}.status-pill.blue .dot{background:var(--info-solid)}@keyframes spin-cw{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning{animation:spin-cw .8s linear infinite}.messenger-app{display:flex;flex-direction:column;width:100%;height:100%;height:100dvh;position:relative;overflow:hidden;background:var(--bg-surface)}.chat-container{display:flex;flex:1;min-height:0;width:100%;height:100%;height:100dvh;overflow:hidden}.floating-toast{position:absolute;top:16px;right:20px;z-index:100;display:flex;align-items:center;gap:8px;background:var(--ink-solid);color:var(--on-solid);padding:8px 16px;border-radius:var(--radius-pill);font-size:calc(12px * var(--fs, 1));font-weight:500;box-shadow:var(--shadow-lg);pointer-events:none;animation:toastFade .3s ease}.floating-toast svg{color:#34d399}@keyframes toastFade{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.chat-list-panel{width:360px;min-width:320px;max-width:380px;height:100%;display:flex;flex-direction:column;background:var(--bg-surface);border-right:1px solid var(--border-light);z-index:5}.panel-header{height:60px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface);flex-shrink:0}.app-brand{display:flex;align-items:center;gap:10px}.app-icon{width:36px;height:36px;border-radius:12px;background:var(--accent-soft);color:var(--accent-text);display:flex;align-items:center;justify-content:center}.app-title-group{display:flex;flex-direction:column}.app-title{font-size:calc(15px * var(--fs, 1));font-weight:700;color:var(--text-main);line-height:1.2}.security-tag{display:inline-flex;align-items:center;gap:3px;font-size:calc(10px * var(--fs, 1));font-weight:600;color:var(--accent-text)}.header-actions{display:flex;align-items:center;gap:4px}.icon-btn{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .15s ease}.icon-btn:hover{background:var(--bg-subtle);color:var(--text-main)}.icon-btn.lock-btn:hover{background:var(--danger-bg-strong);color:var(--danger-text)}.icon-btn.danger-btn{color:var(--danger-text)}.icon-btn.danger-btn:hover{background:var(--danger-bg-strong);color:var(--danger-text)}.sidebar-nav-tabs{display:flex;padding:8px 12px;gap:8px;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.sidebar-tab-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;font-size:calc(13px * var(--fs, 1));font-weight:600;border-radius:var(--radius-md);color:var(--text-secondary);background:var(--bg-muted);border:1px solid transparent;transition:all .2s ease}.sidebar-tab-btn:hover{background:var(--accent-soft);color:var(--accent-text)}.sidebar-tab-btn.active{background:var(--accent);color:var(--on-solid);box-shadow:0 2px 6px var(--accent-glow)}.tab-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-pill);font-size:calc(11px * var(--fs, 1));font-weight:700;background:#ffffff40;color:inherit}.sidebar-tab-btn:not(.active) .tab-count-badge{background:var(--bg-track);color:var(--text-secondary)}.search-bar{padding:10px 14px;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.search-input-wrapper{position:relative;display:flex;align-items:center;width:100%}.search-icon{position:absolute;left:12px;color:var(--text-muted);pointer-events:none}.search-input-wrapper input{width:100%;height:38px;padding:0 34px 0 36px;background:var(--bg-muted);border:1px solid transparent;border-radius:var(--radius-pill);font-size:calc(13px * var(--fs, 1));outline:none;transition:all .2s ease}.search-input-wrapper input:focus{background:var(--bg-surface);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.clear-search-btn{position:absolute;right:10px;color:var(--text-muted);padding:4px}.conversation-list{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:4px}.conv-item{width:100%;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);text-align:left;transition:background .15s ease}.conv-item:hover{background:var(--bg-subtle)}.conv-item.active{background:var(--accent-tint)}.conv-avatar-wrapper{position:relative;flex-shrink:0}.conv-avatar{width:44px;height:44px;border-radius:50%;background:var(--accent);color:var(--on-solid);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:calc(16px * var(--fs, 1))}.online-indicator{position:absolute;bottom:1px;right:1px;width:11px;height:11px;border-radius:50%;background:var(--status-ok);border:2px solid var(--bg-surface)}.online-indicator.connected{background:var(--status-ok)}.online-indicator.connecting{background:var(--status-warn)}.online-indicator.offline{background:var(--text-faint)}.conv-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.conv-row-top{display:flex;align-items:center;justify-content:space-between}.conv-name{font-size:calc(14px * var(--fs, 1));font-weight:600;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-time{font-size:calc(11px * var(--fs, 1));color:var(--text-muted);margin-left:6px;flex-shrink:0}.conv-row-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}.conv-preview{font-size:calc(12px * var(--fs, 1));color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-badge{font-size:calc(9px * var(--fs, 1));font-weight:700;letter-spacing:.5px;padding:2px 6px;border-radius:4px;background:var(--accent-soft);color:var(--accent-text);flex-shrink:0}.friends-list{flex:1;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.friend-card{display:flex;align-items:center;justify-content:space-between;padding:12px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:all .15s ease}.friend-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #0f766e14}.friend-card-left{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.friend-info{min-width:0;display:flex;flex-direction:column;gap:2px}.friend-alias{font-size:calc(14px * var(--fs, 1));font-weight:600;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.friend-meta{font-size:calc(11px * var(--fs, 1));color:var(--text-muted);display:flex;align-items:center;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.friend-card-actions{display:flex;align-items:center;gap:6px;margin-left:8px;flex-shrink:0}.btn-chat-action{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;font-size:calc(12px * var(--fs, 1));font-weight:600;background:var(--accent-soft);color:var(--accent-text);border-radius:var(--radius-sm);border:1px solid var(--accent);transition:all .15s ease}.btn-chat-action:hover{background:var(--accent);color:var(--on-solid)}.btn-delete-friend{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--danger-text);background:var(--danger-bg-strong);transition:all .15s ease}.btn-delete-friend:hover{background:var(--danger-solid);color:var(--on-solid)}.empty-friends-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:36px 20px;color:var(--text-secondary)}.empty-friends-state h4{font-size:calc(15px * var(--fs, 1));font-weight:700;color:var(--text-main);margin-bottom:6px}.empty-friends-state p{font-size:calc(12px * var(--fs, 1));line-height:1.5;color:var(--text-muted);max-width:260px;margin-bottom:16px}.btn-add-friend-empty{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;background:var(--accent);color:var(--on-solid);border-radius:var(--radius-pill);font-size:calc(13px * var(--fs, 1));font-weight:600;box-shadow:0 4px 12px var(--accent-glow);transition:all .2s ease}.btn-add-friend-empty:hover{background:var(--accent-deep);transform:translateY(-1px)}.panel-footer{height:48px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border-subtle);background:var(--bg-subtle);font-size:calc(11px * var(--fs, 1));color:var(--text-muted);flex-shrink:0}.vault-status-indicator{display:flex;align-items:center;gap:6px}.vault-status-indicator b{color:var(--accent-text)}.privacy-badge{background:var(--bg-muted);padding:3px 7px;border-radius:4px;font-weight:600;font-size:calc(10px * var(--fs, 1))}.active-chat-screen{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;background:var(--bg-chat-stream);position:relative}.chat-header{height:60px;padding:0 16px;background:var(--bg-surface);border-bottom:1px solid var(--border-light);display:flex;align-items:center;gap:12px;flex-shrink:0;z-index:4}.mobile-back-button{display:none;width:38px;height:38px;border-radius:50%;align-items:center;justify-content:center;color:var(--text-main);flex-shrink:0}.chat-avatar-wrapper{position:relative;flex-shrink:0}.chat-avatar{width:38px;height:38px;border-radius:50%;background:var(--accent);color:var(--on-solid);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:calc(15px * var(--fs, 1))}.chat-header-info{flex:1;min-width:0}.chat-title{font-size:calc(15px * var(--fs, 1));font-weight:600;color:var(--text-main);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-subtitle{display:flex;align-items:center;gap:5px;font-size:calc(11px * var(--fs, 1));color:var(--accent-text);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.secure-dot{width:6px;height:6px;border-radius:50%;background:var(--status-ok)}.chat-header-actions{display:flex;align-items:center;gap:4px}.message-stream{flex:1;overflow-y:auto;padding:16px 20px;background-color:var(--bg-chat-stream);background-image:var(--bg-chat-pattern);background-size:var(--bg-chat-size);display:flex;flex-direction:column;gap:10px}.system-pill{align-self:center;max-width:85%;background:var(--glass-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--hover-tint);color:var(--text-secondary);padding:6px 14px;border-radius:var(--radius-pill);font-size:calc(11px * var(--fs, 1));line-height:1.4;display:inline-flex;align-items:center;gap:6px;text-align:center;box-shadow:var(--shadow-sm);margin:6px auto 14px}.system-pill svg{color:var(--accent-text);flex-shrink:0}.empty-chat-state{align-self:center;max-width:320px;margin:auto;padding:24px;background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);text-align:center;color:var(--text-secondary)}.empty-bubble-icon{width:54px;height:54px;margin:0 auto 12px;border-radius:18px;background:var(--accent-soft);color:var(--accent-text);display:flex;align-items:center;justify-content:center}.empty-chat-state h3{font-size:calc(15px * var(--fs, 1));font-weight:700;color:var(--text-main);margin-bottom:6px}.empty-chat-state p{font-size:calc(12px * var(--fs, 1));line-height:1.6;color:var(--text-muted)}.message-row{display:flex;width:100%}.message-row.outgoing{justify-content:flex-end}.message-row.incoming{justify-content:flex-start}.message-bubble{max-width:min(82%,460px);padding:8px 12px 6px;box-shadow:0 1px 2px #00000014;position:relative}.message-row.outgoing .message-bubble{background:var(--bubble-outgoing);border:1px solid var(--bubble-outgoing-border);border-radius:16px 16px 4px}.message-row.incoming .message-bubble{background:var(--bubble-incoming);border:1px solid var(--border-light);border-radius:16px 16px 16px 4px}.message-content{font-size:calc(14px * var(--fs, 1));line-height:1.45;color:var(--text-main);white-space:pre-wrap;word-break:break-word}.message-meta{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin-top:4px;font-size:calc(10px * var(--fs, 1));color:var(--bubble-meta)}.message-time{font-size:calc(10px * var(--fs, 1))}.status-icon{color:var(--info-text);display:flex;align-items:center}.status-icon.delivered{color:var(--status-ok)}.status-icon.queued{color:var(--status-warn)}.status-icon.local{color:var(--text-faint)}.delete-msg-btn{color:var(--text-faint);padding:2px;border-radius:4px;display:flex;align-items:center;transition:all .15s ease}.delete-msg-btn:hover{color:var(--danger-text);background:var(--danger-bg)}.chat-composer-area{background:var(--bg-surface);border-top:1px solid var(--border-light);padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));flex-shrink:0;display:flex;flex-direction:column;gap:6px}.composer-form{display:flex;align-items:center;gap:10px;width:100%}.input-wrapper{flex:1;position:relative}.composer-input{width:100%;height:44px;padding:0 18px;background:var(--bg-muted);border:1px solid transparent;border-radius:var(--radius-pill);font-size:calc(14px * var(--fs, 1));color:var(--text-main);outline:none;transition:all .2s ease}.composer-input:focus{background:var(--bg-surface);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.send-btn{width:44px;height:44px;border-radius:50%;background:var(--bg-disabled);color:var(--on-solid);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.send-btn.active{background:var(--accent);box-shadow:0 3px 10px var(--accent-glow)}.send-btn.active:hover{background:var(--accent-deep)}.composer-hint{text-align:center;font-size:calc(10px * var(--fs, 1));color:var(--text-muted)}.settings-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;display:flex;animation:backdropFade .2s ease}.account-manager{width:min(100% - 32px,520px);max-height:calc(100dvh - 32px);overflow-y:auto}.account-manager h1{margin:0 0 20px;font-size:1.4rem}.account-manager ul{list-style:none;margin:0 0 18px;padding:0}.account-manager li{display:flex;align-items:center;gap:8px;padding:12px 0;border-bottom:1px solid var(--border-light)}.account-manager li>span{flex:1;overflow-wrap:anywhere}.account-manager button{padding:9px 12px;border:1px solid var(--border-light);border-radius:10px;background:#fff;color:var(--text-main);cursor:pointer}.account-manager>button{margin:4px}.account-manager form{display:grid;gap:12px}.account-manager label{display:grid;gap:6px;text-align:left}.account-manager input{width:100%;min-width:0;padding:10px;border:1px solid var(--border-light);border-radius:8px;font-size:calc(16px * var(--fs, 1))}@keyframes backdropFade{0%{opacity:0}to{opacity:1}}.settings-drawer{width:380px;max-width:100vw;height:100%;height:100dvh;background:var(--bg-surface);box-shadow:var(--shadow-drawer);display:flex;flex-direction:column;overflow:hidden;animation:drawerSlide .25s cubic-bezier(.16,1,.3,1)}@keyframes drawerSlide{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer-header{height:60px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-light);flex-shrink:0}.drawer-header h2{font-size:calc(16px * var(--fs, 1));font-weight:700;color:var(--text-main)}.drawer-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:18px}.vault-profile-card{display:flex;align-items:center;gap:14px;padding:16px;background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:var(--radius-md)}.vault-avatar{width:48px;height:48px;border-radius:16px;background:var(--accent-soft);color:var(--accent-text);display:flex;align-items:center;justify-content:center;flex-shrink:0}.vault-profile-info{display:flex;flex-direction:column;gap:3px}.vault-profile-info h3{font-size:calc(14px * var(--fs, 1));font-weight:700;color:var(--text-main)}.vault-id{font-size:calc(11px * var(--fs, 1));font-family:monospace;color:var(--text-muted)}.settings-section{display:flex;flex-direction:column;gap:8px}.section-title{display:flex;align-items:center;gap:6px;font-size:calc(12px * var(--fs, 1));font-weight:600;color:var(--text-secondary);padding:0 4px}.section-title svg{color:var(--accent-text)}.settings-card{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden}.setting-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid var(--border-subtle)}.setting-item:last-child{border-bottom:none}.item-text{display:flex;flex-direction:column;gap:2px;min-width:0}.item-text strong{font-size:calc(13px * var(--fs, 1));font-weight:600;color:var(--text-main)}.item-text small{font-size:calc(11px * var(--fs, 1));color:var(--text-muted);line-height:1.35}.status-pill{display:inline-flex;align-items:center;gap:5px;font-size:calc(11px * var(--fs, 1));font-weight:600;padding:3px 8px;border-radius:var(--radius-pill);flex-shrink:0}.status-pill.green{background:var(--ok-bg);color:var(--ok-text)}.status-pill.gray{background:var(--bg-muted);color:var(--text-muted)}.status-pill.orange{background:var(--warn-bg);color:var(--warn-text)}.status-pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.switch-toggle{width:44px;height:24px;border-radius:var(--radius-pill);background:var(--bg-disabled);position:relative;transition:background .2s ease;flex-shrink:0}.switch-toggle:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--bg-surface);box-shadow:var(--shadow-sm);transition:transform .2s cubic-bezier(.16,1,.3,1)}.switch-toggle.on{background:var(--accent)}.switch-toggle.on:after{transform:translate(20px)}.drawer-lock-btn{width:100%;height:44px;border:1px solid var(--danger-border);border-radius:var(--radius-md);background:var(--danger-bg);color:var(--danger-text);font-size:calc(13px * var(--fs, 1));font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .15s ease;margin-top:6px}.drawer-lock-btn:hover{background:var(--danger-bg-strong);border-color:var(--danger-border)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172aa6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;display:flex;align-items:center;justify-content:center;padding:16px;animation:modalFadeIn .2s cubic-bezier(.16,1,.3,1)}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-card{width:100%;max-width:480px;max-height:calc(100dvh - 32px);background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:modalScaleUp .22s cubic-bezier(.16,1,.3,1)}@keyframes modalScaleUp{0%{transform:scale(.96) translateY(8px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.modal-header{padding:16px 20px;border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;background:var(--bg-surface);flex-shrink:0}.modal-header-title{display:flex;align-items:center;gap:12px}.modal-header-icon{width:38px;height:38px;border-radius:12px;background:var(--accent-soft);color:var(--accent-text);display:flex;align-items:center;justify-content:center;flex-shrink:0}.modal-header h2{font-size:calc(16px * var(--fs, 1));font-weight:700;color:var(--text-main);line-height:1.25}.modal-header p{font-size:calc(11.5px * var(--fs, 1));color:var(--text-muted);margin-top:2px}.modal-tabs{display:flex;padding:8px 16px;gap:8px;background:var(--bg-subtle);border-bottom:1px solid var(--border-light);flex-shrink:0}.modal-tab-btn{flex:1;padding:9px 12px;font-size:calc(12.5px * var(--fs, 1));font-weight:600;border-radius:var(--radius-sm);color:var(--text-secondary);background:transparent;transition:all .15s ease;display:flex;align-items:center;justify-content:center;gap:6px}.modal-tab-btn:hover{background:var(--hover-tint)}.modal-tab-btn.active{background:var(--bg-surface);color:var(--accent-text);box-shadow:var(--shadow-sm)}.modal-body{padding:18px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.modal-field{display:flex;flex-direction:column;gap:6px}.modal-field label{font-size:calc(12px * var(--fs, 1));font-weight:600;color:var(--text-secondary);display:flex;align-items:center;justify-content:space-between}.modal-input{width:100%;height:42px;padding:0 14px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:calc(13.5px * var(--fs, 1));color:var(--text-main);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.modal-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.modal-textarea{width:100%;height:80px;padding:10px 12px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-subtle);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:calc(11px * var(--fs, 1));color:var(--text-main);line-height:1.5;resize:none;outline:none;word-break:break-all}.modal-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.fingerprint-card{padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-light);display:flex;flex-direction:column;gap:6px}.fingerprint-card-header{display:flex;align-items:center;justify-content:space-between;font-size:calc(11px * var(--fs, 1));font-weight:600;color:var(--text-muted)}.fingerprint-code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:calc(11.5px * var(--fs, 1));font-weight:600;letter-spacing:.5px;color:var(--accent-text);background:var(--bg-surface);padding:8px 10px;border-radius:var(--radius-sm);border:1px dashed var(--border-light);word-break:break-all;line-height:1.6}.copy-action-row{display:flex;align-items:center;gap:8px}.btn-secondary{height:38px;padding:0 14px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:calc(12.5px * var(--fs, 1));font-weight:600;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;gap:6px;transition:all .15s ease}.btn-secondary:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--border-strong)}.btn-secondary.copied{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent)}.btn-primary{height:42px;padding:0 16px;border-radius:var(--radius-sm);background:var(--accent);color:var(--on-solid);font-size:calc(13.5px * var(--fs, 1));font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .15s ease}.btn-primary:hover:not(:disabled){background:var(--accent-deep)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.p2p-status-box{padding:12px 14px;border-radius:var(--radius-md);font-size:calc(12px * var(--fs, 1));line-height:1.45;display:flex;align-items:flex-start;gap:10px}.p2p-status-box.connecting{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-text)}.p2p-status-box.connected{background:var(--ok-bg);border:1px solid var(--ok-border);color:var(--ok-text)}.quick-connect-header-btn{height:32px;padding:0 10px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-text);font-size:calc(11.5px * var(--fs, 1));font-weight:600;display:flex;align-items:center;gap:5px;transition:all .15s ease;border:1px solid var(--accent-line)}.quick-connect-header-btn:hover{background:var(--accent);color:var(--on-solid)}.safety-btn{color:var(--accent-text)}.safety-card-group{display:flex;flex-direction:column;gap:12px}.pending-invite-badge{display:inline-flex;align-items:center;gap:6px;background:var(--accent-soft);color:var(--accent-text);padding:8px 14px;border-radius:var(--radius-pill);font-size:calc(12px * var(--fs, 1));font-weight:600;margin-bottom:16px;border:1px solid var(--accent);animation:pulseBadge 2s infinite ease-in-out}@keyframes pulseBadge{0%,to{transform:scale(1);box-shadow:0 0 0 0 var(--accent-line)}50%{transform:scale(1.02);box-shadow:0 0 0 6px #0f766e1a}}.qr-container-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 14px;background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:var(--radius-md);gap:12px;text-align:center}.qr-canvas-wrapper{background:var(--bg-surface);padding:10px;border-radius:var(--radius-md);border:1.5px solid var(--border-light);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:center;line-height:0}.qr-canvas-wrapper canvas{display:block;max-width:100%;height:auto;border-radius:var(--radius-sm)}.qr-caption{font-size:calc(11.5px * var(--fs, 1));color:var(--text-muted);line-height:1.45;max-width:320px}.qr-actions-group{display:flex;gap:8px;width:100%}.qr-actions-group .btn-primary,.qr-actions-group .btn-secondary{flex:1;height:40px;font-size:calc(12.5px * var(--fs, 1));padding:0 10px;white-space:nowrap}.scan-qr-actions-row{display:flex;gap:8px;margin-bottom:2px}.six-digit-display-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px 14px;background:var(--bg-surface);border:1.5px solid var(--border-light);border-radius:var(--radius-lg);gap:12px;box-shadow:var(--shadow-sm);text-align:center}.six-digit-header{display:flex;justify-content:space-between;align-items:center;width:100%}.six-digit-label{font-size:calc(12px * var(--fs, 1));font-weight:700;color:var(--text-secondary);letter-spacing:.5px;text-transform:uppercase}.btn-refresh-code{font-size:calc(12px * var(--fs, 1));font-weight:600;color:var(--accent-text);background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);transition:background .15s ease}.btn-refresh-code:hover{background:var(--accent-soft)}.six-digit-boxes{display:flex;gap:8px;justify-content:center;align-items:center;width:100%}.six-digit-box{flex:1;max-width:48px;height:56px;background:var(--accent-tint);border:2px solid var(--accent);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:calc(26px * var(--fs, 1));font-weight:700;color:var(--accent-text);font-family:IBM Plex Sans Thai,monospace;box-shadow:0 2px 6px var(--accent-glow)}.waiting-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:var(--radius-pill);background:var(--warn-bg);color:var(--warn-text);font-size:calc(12px * var(--fs, 1));font-weight:600;border:1px solid var(--warn-border)}.pulsing-dot{width:8px;height:8px;border-radius:50%;background:var(--status-warn);animation:pulseDot 1.4s infinite ease-in-out}@keyframes pulseDot{0%,to{transform:scale(.9);opacity:.8}50%{transform:scale(1.25);opacity:1}}.btn-copy-link{width:100%;height:48px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:calc(14.5px * var(--fs, 1));font-weight:600;border-radius:var(--radius-md);box-shadow:0 4px 14px var(--accent-glow);transition:all .2s ease}.btn-copy-link.copied{background:var(--status-ok)!important}.six-digit-input{width:100%;height:58px;padding:0 16px;background:var(--bg-subtle);border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:calc(24px * var(--fs, 1));font-weight:700;letter-spacing:12px;text-align:center;font-family:IBM Plex Sans Thai,monospace;color:var(--accent-text);transition:all .2s ease}.six-digit-input:focus{border-color:var(--accent);background:var(--bg-surface);outline:none;box-shadow:0 0 0 4px var(--accent-glow)}.confirm-friend-card{width:100%;max-width:380px;background:var(--bg-surface);border-radius:24px;padding:32px 24px;text-align:center;box-shadow:var(--shadow-lg);animation:slideUp .25s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;align-items:center}.confirm-friend-avatar{width:68px;height:68px;border-radius:22px;background:var(--accent-soft);color:var(--accent-text);display:flex;align-items:center;justify-content:center;margin-bottom:18px;box-shadow:0 6px 16px var(--accent-glow)}.confirm-friend-title{font-size:calc(20px * var(--fs, 1));font-weight:700;color:var(--text-main);margin-bottom:8px}.confirm-friend-desc{font-size:calc(13px * var(--fs, 1));color:var(--text-secondary);line-height:1.55;margin-bottom:24px}.confirm-friend-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:12px;width:100%}.delete-modal-card{width:100%;max-width:380px;background:var(--bg-surface);border-radius:24px;padding:32px 24px;text-align:center;box-shadow:var(--shadow-lg);animation:slideUp .25s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;align-items:center}.delete-icon-wrapper{width:68px;height:68px;border-radius:22px;background:var(--danger-bg-strong);color:var(--danger-text);display:flex;align-items:center;justify-content:center;margin-bottom:18px;box-shadow:0 6px 16px #ef444433}.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;background:var(--status-danger);color:var(--on-solid);border-radius:var(--radius-md);font-size:calc(13.5px * var(--fs, 1));font-weight:600;box-shadow:0 4px 14px #ef444440;transition:all .15s ease}.btn-danger:hover:not(:disabled){background:var(--danger-solid);transform:translateY(-1px)}.btn-danger:active:not(:disabled){transform:translateY(0)}.btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:var(--bg-surface);border-radius:50%;animation:spin .8s linear infinite}.manual-accordion{margin-top:18px;border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-subtle)}.manual-accordion-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:12px 14px;font-size:calc(12.5px * var(--fs, 1));font-weight:600;color:var(--text-secondary);cursor:pointer;background:none;border:none;transition:background .15s ease}.manual-accordion-header:hover{background:var(--border-subtle)}.manual-header-title{display:flex;align-items:center;gap:8px}.manual-chevron{transition:transform .2s ease;color:var(--text-muted)}.manual-chevron.open{transform:rotate(90deg)}.manual-accordion-content{padding:16px 14px;border-top:1px solid var(--border-light);background:var(--bg-surface);display:flex;flex-direction:column;gap:14px}.scan-qr-btn{flex:1;height:38px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;background:var(--accent-soft);color:var(--accent-text);border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:calc(12.5px * var(--fs, 1));font-weight:600;transition:all .15s ease;cursor:pointer}.scan-qr-btn:hover{background:var(--accent);color:var(--on-solid)}.live-scanner-box{position:relative;width:100%;max-width:280px;margin:6px auto;border-radius:var(--radius-md);overflow:hidden;background:#000;border:2px solid var(--accent);aspect-ratio:1 / 1;display:flex;align-items:center;justify-content:center}.live-scanner-box video{width:100%;height:100%;object-fit:cover}.scanner-crosshair{position:absolute;top:24px;right:24px;bottom:24px;left:24px;border:2px dashed rgba(255,255,255,.8);border-radius:var(--radius-md);pointer-events:none;animation:pulseCrosshair 1.8s infinite ease-in-out}@keyframes pulseCrosshair{0%,to{border-color:#fff9;transform:scale(.98)}50%{border-color:#10b981;transform:scale(1.02)}}@media(max-width:767px){.chat-container.mobile-list .chat-list-panel{display:flex;width:100%;max-width:100%;height:100%;height:100dvh;border-right:none}.chat-container.mobile-list .active-chat-screen,.chat-container.mobile-chat .chat-list-panel{display:none}.chat-container.mobile-chat .active-chat-screen{display:flex;width:100%;height:100%;height:100dvh}.mobile-back-button{display:flex}.settings-drawer{width:100vw}}.header-exit-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;background:var(--danger-bg);color:var(--danger-text);border:1px solid var(--danger-border);border-radius:var(--radius-pill);font-size:calc(13px * var(--fs, 1));font-weight:600;cursor:pointer;transition:all .15s ease}.header-exit-btn:hover{background:var(--danger-bg-strong);color:var(--danger-text);border-color:var(--danger-border)}.header-exit-label{font-size:calc(12.5px * var(--fs, 1));font-weight:600}.subaccount-header-pill{display:inline-flex;align-items:center;gap:4px;font-size:calc(11.5px * var(--fs, 1));font-weight:600;color:var(--accent-text);background:var(--accent-soft);padding:2px 8px;border-radius:var(--radius-pill);border:1px solid var(--accent-line);white-space:nowrap}.account-lock-screen{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--bg-app);padding:20px}.account-lock-card{width:100%;max-width:440px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:0 12px 36px -4px #00000014;padding:28px 24px;display:flex;flex-direction:column;gap:20px}.lock-card-header{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.account-lock-title{font-size:calc(20px * var(--fs, 1));font-weight:700;color:var(--text-main);margin:0}.account-lock-desc{font-size:calc(13px * var(--fs, 1));color:var(--text-secondary);line-height:1.45;margin:0}.user-session-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:var(--bg-muted);border:1px solid var(--border-light);border-radius:var(--radius-pill);font-size:calc(12px * var(--fs, 1));font-weight:600;color:var(--text-secondary);margin-top:4px}.account-pills-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:4px 0}.account-pill-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius-pill);border:1px solid var(--border-light);background:var(--bg-subtle);color:var(--text-main);font-size:calc(13px * var(--fs, 1));font-weight:600;cursor:pointer;transition:all .15s ease}.account-pill-btn:hover{background:var(--bg-muted);border-color:var(--border-strong)}.account-pill-btn.active{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.account-pill-btn.add-btn{border-style:dashed;color:var(--accent-text);background:transparent}.account-pill-btn.add-btn:hover{background:var(--accent-tint)}.selected-account-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--accent-tint);border:1px solid var(--accent-line);border-radius:var(--radius-md)}.selected-account-icon{font-size:calc(24px * var(--fs, 1));line-height:1}.selected-account-details{display:flex;flex-direction:column;gap:2px}.selected-name{font-size:calc(14.5px * var(--fs, 1));font-weight:700;color:var(--text-main)}.selected-hint{font-size:calc(11.5px * var(--fs, 1));color:var(--text-secondary)}.pin-input-boxes-row{display:flex;justify-content:center;gap:14px;margin:16px 0 12px}.pin-digit-box{width:56px;height:56px;font-size:calc(26px * var(--fs, 1));font-weight:700;text-align:center;border:2px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-main);transition:all .15s ease;outline:none;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none}.pin-digit-box.filled{border-color:var(--accent-deep);background:var(--accent-tint)}.pin-digit-box.error{border-color:var(--danger-text);background:var(--danger-bg)}.pin-error-alert{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:var(--radius-md);color:var(--danger-text);font-size:calc(13px * var(--fs, 1));font-weight:500;margin-bottom:12px}.pin-keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:280px;margin:8px auto}.pin-key-btn{height:50px;background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:calc(19px * var(--fs, 1));font-weight:600;color:var(--text-main);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .1s ease;-webkit-user-select:none;user-select:none}.pin-key-btn:hover{background:var(--bg-muted);border-color:var(--border-strong)}.pin-key-btn:active{background:var(--accent-soft);color:var(--accent-text);transform:scale(.96)}.pin-key-btn.action-key{font-size:calc(16px * var(--fs, 1));color:var(--text-secondary)}.pin-entry-footer-actions{display:flex;justify-content:center;margin-top:10px}.btn-create-subaccount-secondary{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--border-light);border-radius:var(--radius-pill);padding:6px 14px;font-size:calc(12.5px * var(--fs, 1));font-weight:600;color:var(--accent-text);cursor:pointer;transition:all .15s ease}.btn-create-subaccount-secondary:hover{background:var(--accent-soft);border-color:var(--accent)}.lock-card-footer{display:flex;justify-content:center;border-top:1px solid var(--border-light);padding-top:16px;margin-top:4px}.master-logout-text-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--text-muted);font-size:calc(12.5px * var(--fs, 1));cursor:pointer;transition:color .15s ease}.master-logout-text-btn:hover{color:var(--danger-text)}@keyframes pinShake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.shake{animation:pinShake .4s ease-in-out}.settings-select-dropdown{padding:8px 12px;border-radius:var(--radius-md);border:1px solid var(--border-light);background:var(--bg-surface);color:var(--text-main);font-size:calc(13px * var(--fs, 1));font-weight:500;outline:none;cursor:pointer}.settings-select-dropdown:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}html,body,#root,button,a,[role=button],.pin-keypad-grid,.pin-key-btn{touch-action:manipulation}.pin-keypad-grid,.pin-key-btn,.pin-input-boxes-row{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}@media(max-width:767px){input,textarea,select{font-size:calc(16px * var(--fs, 1))!important}}.create-account-form .modal-input{font-size:calc(16px * var(--fs, 1))}.create-account-form .error-alert{align-items:flex-start;line-height:1.4}.visually-hidden-file{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.attach-btn{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent-text);background:var(--accent-soft);transition:all .15s ease}.attach-btn:hover:not(:disabled){background:var(--accent-tint)}.attach-btn:disabled{color:var(--text-muted);background:var(--bg-subtle);cursor:not-allowed}.composer-image-preview{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-subtle)}.composer-image-preview img{width:56px;height:56px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.composer-image-info{flex:1;min-width:0;display:flex;flex-direction:column;font-size:calc(12.5px * var(--fs, 1));color:var(--text-main)}.composer-image-info small{color:var(--text-muted);font-size:calc(11px * var(--fs, 1))}.composer-image-send{height:38px;flex-shrink:0}.composer-image-error{display:flex;align-items:flex-start;gap:6px;padding:8px 10px;border-radius:var(--radius-sm);background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger-text);font-size:calc(12px * var(--fs, 1));line-height:1.4}.message-image-content{white-space:normal}.chat-image-btn{display:block;padding:0;border-radius:12px;overflow:hidden;background:var(--bg-track);cursor:zoom-in;touch-action:manipulation}.chat-image{display:block;max-width:min(260px,100%);max-height:320px;width:auto;height:auto;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.chat-image-skeleton{width:200px;height:140px;border-radius:12px;background:var(--bg-track)}.chat-image-missing{padding:12px;font-size:calc(12px * var(--fs, 1));color:var(--text-muted)}.transfer-progress{position:relative;margin-top:6px;height:18px;min-width:160px;border-radius:9px;background:#0f172a1f;overflow:hidden;font-size:calc(11px * var(--fs, 1));line-height:18px;text-align:center;color:var(--text-main)}.transfer-progress-bar{position:absolute;inset:0 auto 0 0;background:var(--accent-soft);transition:width .15s linear}.transfer-progress span{position:relative}.transfer-failed{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:6px;font-size:calc(12px * var(--fs, 1));color:var(--danger-text)}.transfer-queued{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:calc(12px * var(--fs, 1));color:var(--text-muted)}.transfer-retry-btn{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 10px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);font-size:calc(12px * var(--fs, 1));font-weight:600}.transfer-retry-btn:disabled{opacity:.5;cursor:not-allowed}.image-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#020617eb;display:flex;align-items:center;justify-content:center;padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px);touch-action:manipulation}.image-viewer-img{max-width:100%;max-height:100%;object-fit:contain;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.image-viewer-close{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));right:12px;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--on-solid);background:#ffffff29}.backup-settings>p{margin:0;padding:10px 14px;color:var(--text-muted);font-size:calc(13px * var(--fs, 1));line-height:1.5}.backup-settings>p button{margin-left:4px;color:var(--text-primary)}.backup-file-label{display:block;padding:12px 14px;cursor:pointer;font-size:calc(13px * var(--fs, 1));font-weight:600}.backup-file-label input{display:block;margin-top:8px;max-width:100%;font-size:calc(13px * var(--fs, 1))}.backup-settings progress{display:block;width:calc(100% - 28px);margin:10px 14px}.passcode-screen{background:var(--bg-app)}.passcode-card{border:1px solid var(--border-light);box-shadow:0 12px 36px -4px #00000014}.ghost-btn,.danger-outline-btn,.danger-solid-btn,.text-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-family:inherit;font-size:calc(14px * var(--fs, 1));font-weight:600;text-align:center}.ghost-btn{min-height:48px;padding:0 18px;background:var(--bg-surface);color:var(--text-secondary);border:1.5px solid var(--border-light);border-radius:var(--radius-md)}.ghost-btn:hover{background:var(--bg-subtle);border-color:var(--border-strong)}.danger-outline-btn{min-height:44px;padding:0 18px;background:var(--bg-surface);color:var(--danger-text);border:1.5px solid var(--danger-border);border-radius:var(--radius-md)}.danger-outline-btn:hover{background:var(--danger-bg)}.danger-solid-btn{min-height:48px;padding:0 18px;background:var(--danger-solid);color:var(--on-solid);border-radius:var(--radius-md)}.danger-solid-btn:hover{background:var(--danger-solid-hover)}.text-btn{min-height:44px;padding:0 14px;background:none;color:var(--text-secondary);font-weight:500}.text-btn:hover{color:var(--text-main);text-decoration:underline}.field-hint{margin:6px 0 0;font-size:calc(13px * var(--fs, 1));color:var(--danger-text);text-align:left}.dialog-error{margin:0;padding:10px 12px;background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:var(--radius-sm);color:var(--danger-text);font-size:calc(13px * var(--fs, 1));line-height:1.45}.dialog-input{width:100%;min-height:48px;padding:0 16px;border:1.5px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-subtle);font-size:calc(16px * var(--fs, 1));text-align:center;letter-spacing:6px}.dialog-card{padding:24px 20px 20px;gap:12px;overflow-y:auto}.dialog-card h2{margin:0;font-size:calc(18px * var(--fs, 1));font-weight:700;color:var(--text-main)}.dialog-card p{margin:0;font-size:calc(14px * var(--fs, 1));line-height:1.5;color:var(--text-secondary)}.dialog-card .dialog-error{color:var(--danger-text)}.dialog-card .dialog-result{color:var(--accent-text);font-weight:600}.dialog-card .submit-btn{margin:0;min-height:48px;padding:0 18px}.dialog-card progress{width:100%;height:8px}.dialog-actions{display:flex;flex-direction:column-reverse;gap:10px}.dialog-actions>button{flex:1;width:100%}@media(min-width:480px){.dialog-actions{flex-direction:row}}.pin-dialog{align-items:stretch;text-align:center}.modal-card .pin-keypad-grid{width:100%;max-width:300px;margin:4px auto}.modal-card .pin-key-btn{height:52px;width:100%;min-width:44px}.modal-card .pin-input-boxes-row{justify-content:center}.onboard-card .passcode-desc{margin-bottom:18px}.onboard-actions{width:100%;display:flex;flex-direction:column;gap:10px}.onboard-actions .submit-btn{margin:0;min-height:48px}.onboard-actions .ghost-btn{width:100%}.onboard-card .submit-btn{min-height:48px}.onboard-card .text-btn{width:100%;margin-top:4px}.onboard-form input{letter-spacing:normal}.onboard-form input[type=password],.account-lock-card input[type=password]{letter-spacing:6px;text-align:center}.account-lock-card .lock-card-header h1,.account-lock-card>h1{text-align:center}.account-manager .input-group input{min-height:48px}.account-manager .submit-btn{min-height:48px;margin:0}.account-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;width:100%}.account-row{border:1px solid var(--border-light);border-radius:var(--radius-md);padding:12px 14px;display:flex;flex-direction:column;gap:10px;background:var(--bg-subtle)}.account-row-name{font-size:calc(16px * var(--fs, 1));font-weight:600;color:var(--text-main);overflow-wrap:anywhere}.account-row-actions{display:flex;gap:8px}.account-row-actions>button{flex:1;min-height:44px}.account-rename-form{display:flex;flex-direction:column;gap:10px}.account-footer-actions{display:flex;flex-direction:column;align-items:center;gap:2px}.account-form-title{margin:0;font-size:calc(18px * var(--fs, 1));font-weight:700;text-align:center}.conv-unread-badge{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-pill);background:var(--accent);color:var(--on-solid);font-size:calc(12px * var(--fs, 1));font-weight:700;flex-shrink:0}.account-summary-line{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:12px 16px;background:var(--accent-soft);color:var(--accent-text);border-radius:var(--radius-md);font-size:calc(14px * var(--fs, 1));font-weight:600}.btn-secondary.backup-file-label{display:flex;width:calc(100% - 28px);height:44px;margin:10px 14px;padding:0 14px;cursor:pointer;font-size:calc(13px * var(--fs, 1))}.settings-select-dropdown{min-height:44px}.switch-toggle:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px}.lookup-result-person{display:flex;align-items:center;gap:10px;font-size:calc(15px * var(--fs, 1))}.friend-meta{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-label-mobile{display:none;font-size:calc(12px * var(--fs, 1));font-weight:600;margin-left:4px}.header-exit-btn,.header-exit-btn:hover,.icon-btn.lock-btn:hover{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-line)}.floating-toast{position:fixed;top:auto;right:auto;left:50%;bottom:calc(88px + env(safe-area-inset-bottom,0px));transform:translate(-50%);max-width:calc(100vw - 32px);animation:toastRise .3s ease}@keyframes toastRise{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media(max-width:767px){.icon-btn{width:44px;height:44px}.icon-btn.header-exit-btn{width:auto;height:44px}.mobile-back-button{width:44px;height:44px}.btn-chat-action,.btn-delete-friend{min-height:44px}.btn-label-mobile{display:inline}.btn-delete-friend{min-width:44px}}@media(max-width:480px){.chat-header{gap:8px;padding:0 8px}.chat-header-actions .header-exit-btn,.chat-header-actions [aria-label=การตั้งค่าและความปลอดภัย]{display:none}}.backup-file-label input[hidden]{display:none}.account-manager .submit-btn{width:100%;padding:0 18px;background:var(--accent);color:var(--on-solid);border:0;border-radius:var(--radius-md);font-size:calc(15px * var(--fs, 1));font-weight:600;box-shadow:0 4px 14px var(--accent-glow)}.account-manager .submit-btn:hover:not(:disabled){background:var(--accent-deep)}.account-manager .ghost-btn{background:var(--bg-surface);color:var(--text-secondary);border:1.5px solid var(--border-light);border-radius:var(--radius-md);padding:0 18px}.account-manager .danger-outline-btn{background:var(--bg-surface);color:var(--danger-text);border:1.5px solid var(--danger-border);border-radius:var(--radius-md);padding:0 18px}.account-manager .text-btn{background:none;border:0;color:var(--text-secondary);padding:0 14px}.account-manager .account-row{align-items:stretch;padding:12px 14px;border:1px solid var(--border-light);border-bottom:1px solid var(--border-light)}.account-manager .account-row>span{flex:none}.account-manager ul.account-list{margin:0 0 4px}.account-manager .account-rename-form{display:flex}.account-manager .input-group input{padding:0 16px;border:1.5px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-subtle)}.account-manager h1{margin:0 0 4px;text-align:center}.account-manager .lock-card-header{margin-bottom:4px}.account-manager>p.account-lock-desc{margin:0}.account-manager .error-alert{margin:0}.dialog-card .danger-solid-btn{background:var(--danger-solid);color:var(--on-solid);border:0}@media(max-width:480px){.friend-card{flex-wrap:wrap;row-gap:8px}.friend-card-actions{margin-left:auto}}.requests-row{background:var(--accent-tint)}.requests-avatar{background:var(--accent-deep);color:var(--on-solid);display:flex;align-items:center;justify-content:center}.conv-unread-badge.requests-badge{background:var(--danger-solid)}.icon-btn{position:relative}.icon-btn-badge{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-pill);background:var(--danger-solid);color:var(--on-solid);font-size:calc(11px * var(--fs, 1));font-weight:700;display:inline-flex;align-items:center;justify-content:center}.conversation-list .empty-friends-state{margin:24px 16px}.requests-panel{max-width:480px}.requests-panel .modal-header-title{display:flex;align-items:center;gap:8px}.requests-panel .modal-body{display:flex;flex-direction:column;gap:18px;overflow-y:auto}.requests-section-title{margin:0 0 8px;font-size:calc(13px * var(--fs, 1));font-weight:700;color:var(--text-secondary)}.requests-empty{margin:0;font-size:calc(14px * var(--fs, 1));color:var(--text-muted)}.requests-outgoing{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.requests-outgoing li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-subtle)}.requests-waiting{font-size:calc(12px * var(--fs, 1));color:var(--text-muted);white-space:nowrap}.chat-menu-wrap{position:relative}.chat-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.chat-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:41;min-width:200px;padding:6px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.chat-menu-item{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border-radius:var(--radius-sm);font-size:calc(14px * var(--fs, 1));font-weight:500;color:var(--text-main);text-align:left;cursor:pointer;background:none}.chat-menu-item:hover{background:var(--bg-subtle)}.chat-menu-item.danger{color:var(--danger-text)}.chat-menu-item.danger:hover{background:var(--danger-bg)}.legacy-bind-banner{padding:10px 16px;background:var(--warn-bg);color:var(--warn-text);font-size:calc(13px * var(--fs, 1));display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.legacy-bind-banner form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:100%}.legacy-bind-banner input{min-height:40px;padding:0 10px;border:1px solid var(--border-light);border-radius:var(--radius-sm)}.legacy-bind-banner .btn-primary,.legacy-bind-banner .btn-secondary{min-height:40px}.requests-panel .friend-card{flex-wrap:wrap;row-gap:10px}.requests-panel .friend-card-left{flex:1 1 140px;min-width:0}.requests-panel .friend-card-actions{width:100%;margin-left:0}.requests-panel .friend-card-actions>button{flex:1;justify-content:center}.icon-btn-badge{top:-2px;right:-4px;border:2px solid var(--bg-surface);box-sizing:content-box}.icon-btn .icon-btn-badge{top:-10px;right:-16px;width:18px;min-width:18px;padding:0;box-shadow:0 0 0 2px var(--bg-surface)}.chat-container{height:auto;flex:1 1 0;min-height:0}.list-column{display:flex;flex-direction:column;flex:1 1 0;min-width:0;min-height:0}.list-column .panel-header .app-title{font-size:calc(20px * var(--fs, 1))}.list-column .panel-header .app-brand{gap:0}.list-column .app-title-group{gap:2px}.subaccount-header-pill{align-self:flex-start;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottom-nav{display:flex;flex:0 0 auto;background:var(--bg-surface);border-top:1px solid var(--border-light);padding-bottom:env(safe-area-inset-bottom,0px);z-index:6}.bottom-nav-btn{flex:1;min-height:56px;min-width:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-muted);background:none;border:0;cursor:pointer;font-size:calc(12px * var(--fs, 1));font-weight:600;touch-action:manipulation}.bottom-nav-btn.active{color:var(--accent-text)}.bottom-nav-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}.bottom-nav-icon{position:relative;display:inline-flex;padding:2px 14px;border-radius:var(--radius-pill)}.bottom-nav-btn.active .bottom-nav-icon{background:var(--accent-soft)}.bottom-nav-badge{position:absolute;top:-4px;right:2px;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-pill);background:var(--danger-solid);color:var(--on-solid);font-size:calc(11px * var(--fs, 1));font-weight:700;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.bottom-nav-label{line-height:1.2}@media(min-width:768px){.chat-list-panel{flex-direction:row-reverse;width:452px;min-width:420px;max-width:480px}.bottom-nav{flex-direction:column;justify-content:flex-start;gap:6px;width:76px;padding:12px 6px;border-top:0;border-right:1px solid var(--border-light);background:var(--bg-subtle)}.bottom-nav-btn{flex:0 0 auto;width:100%;min-height:64px;border-radius:var(--radius-md)}.bottom-nav-btn:hover{background:var(--bg-subtle)}}@media(max-width:767px){.chat-container.mobile-list .chat-list-panel,.chat-container.mobile-chat .active-chat-screen{height:100%}.header-exit-btn .header-exit-label{display:inline}}.header-exit-btn{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-line)}.friends-section{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.friends-section-title{margin:6px 12px 4px;font-size:calc(13px * var(--fs, 1));font-weight:700;color:var(--text-secondary)}.friend-row{width:100%;display:flex;align-items:center;gap:12px;padding:8px 12px;min-height:64px;border-radius:var(--radius-md);text-align:left;background:none;border:0}.friend-row-btn{cursor:pointer}.friend-row-btn:hover{background:var(--bg-subtle)}.friend-row .conv-avatar{flex-shrink:0}.friend-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.friend-row-main .conv-name{font-size:calc(15px * var(--fs, 1));font-weight:600;color:var(--text-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friend-row-main small{font-size:calc(13px * var(--fs, 1));color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friend-row.request-item{background:var(--accent-tint);flex-wrap:wrap;row-gap:8px}.friend-row.request-item .friend-row-main{flex:1 1 120px}.request-accept,.request-reject{min-height:44px;padding:0 16px;border-radius:var(--radius-md);font-size:calc(14px * var(--fs, 1));font-weight:600}.empty-cta{margin-top:12px;min-height:48px;padding:0 22px}.settings-page{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:16px}.settings-profile{display:flex;align-items:center;gap:14px;padding:16px;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-light)}.settings-profile-avatar{width:56px;height:56px;font-size:calc(22px * var(--fs, 1));flex-shrink:0}.settings-profile-text{display:flex;flex-direction:column;min-width:0}.settings-profile-text strong{font-size:calc(17px * var(--fs, 1));color:var(--text-main)}.settings-profile-text span{font-size:calc(14px * var(--fs, 1));color:var(--text-muted);overflow:hidden;text-overflow:ellipsis}.settings-rows{display:flex;flex-direction:column;border-radius:var(--radius-lg);background:var(--bg-surface);border:1px solid var(--border-light);overflow:hidden}.settings-row{display:flex;align-items:center;gap:14px;min-height:56px;padding:0 16px;font-size:calc(16px * var(--fs, 1));font-weight:500;color:var(--text-main);text-align:left;background:none;border:0;border-bottom:1px solid var(--border-subtle);cursor:pointer}.settings-row:last-child{border-bottom:0}.settings-row:hover{background:var(--bg-subtle)}.settings-row svg{color:var(--accent-text);flex-shrink:0}.request-banner{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 16px;background:var(--accent-tint);color:var(--accent-text);border:0;border-bottom:1px solid var(--accent-line);font-size:calc(14px * var(--fs, 1));font-weight:600;text-align:left;cursor:pointer;flex-shrink:0}.request-banner span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.request-banner strong{text-decoration:underline}.request-sent-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 8px 8px;text-align:center}.request-sent-card h3{margin:0;font-size:calc(18px * var(--fs, 1));color:var(--text-main)}.request-sent-card p{margin:0 0 8px;font-size:calc(14px * var(--fs, 1));color:var(--text-muted)}.request-sent-icon{width:56px;height:56px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);display:flex;align-items:center;justify-content:center}.composer-image-preview .icon-btn{width:44px;height:44px}@media(max-width:767px){.attach-btn,.send-btn{min-width:44px;min-height:44px}}.search-input-wrapper input{height:44px;font-size:calc(16px * var(--fs, 1))}.clear-search-btn{right:2px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0}.icon-btn,.mobile-back-button{width:44px;height:44px}.icon-btn.header-exit-btn{width:auto;height:44px}.backup-settings button,.backup-settings .btn{min-height:44px}.backup-settings p button{display:inline-flex;align-items:center;padding:0 8px}.switch-toggle{position:relative}.switch-toggle:before{content:"";position:absolute;top:-10px;right:-6px;bottom:-10px;left:-6px}.text-btn{min-height:44px}.master-logout-text-btn{min-height:44px;min-width:44px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center}.list-column .panel-header{height:auto;min-height:64px;padding:8px 16px}@media(min-width:768px){.chat-header-actions .header-exit-btn{display:none}}.settings-page>*{flex-shrink:0;width:100%;max-width:640px;margin-left:auto;margin-right:auto}.settings-page .settings-section{display:flex;flex-direction:column;gap:8px}.settings-page .account-summary-line{margin:0}.settings-page .drawer-lock-btn{width:100%}.settings-page .section-refresh-btn{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.settings-page .sync-now-btn{min-height:44px}.composer-form{align-items:flex-end}textarea.composer-input{display:block;height:44px;min-height:44px;max-height:128px;padding:11px 18px;font-size:calc(16px * var(--fs, 1));line-height:22px;border-radius:22px;resize:none;overflow-y:auto;font-family:inherit}.message-content{white-space:pre-wrap;overflow-wrap:anywhere}.active-chat-screen{position:relative}.jump-bottom-btn{position:absolute;right:16px;bottom:84px;width:44px;height:44px;border-radius:50%;background:var(--bg-surface);color:var(--accent-text);border:1px solid var(--border-light);box-shadow:0 3px 12px #0000002e;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;z-index:5}.jump-bottom-badge{position:absolute;top:-8px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--accent-deep);color:var(--on-solid);font-size:calc(12px * var(--fs, 1));font-weight:700;display:inline-flex;align-items:center;justify-content:center}.message-link{color:var(--link);text-decoration:underline;overflow-wrap:anywhere}.message-row.outgoing .message-link{color:var(--link)}.day-divider{align-self:center;margin:6px 0 2px}.day-divider span{display:inline-block;padding:3px 12px;border-radius:12px;background:var(--hover-tint);color:var(--text-secondary);font-size:calc(12px * var(--fs, 1));font-weight:600}.composer-hint{font-size:calc(12px * var(--fs, 1));display:flex;align-items:center;justify-content:center;gap:6px}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.status-dot.online{background:var(--status-ok)}.status-dot.offline{background:var(--text-faint)}.message-meta,.message-time{font-size:calc(11px * var(--fs, 1))}.system-pill,.system-pill span{font-size:calc(12px * var(--fs, 1))}.status-pill.gray{color:var(--text-secondary)}.drawer-lock-btn{color:var(--danger-text);font-size:calc(14px * var(--fs, 1))}.settings-page .storage-used{color:var(--text-muted);font-size:calc(12px * var(--fs, 1));margin:0}.modal-tab-btn{min-height:44px;font-size:calc(14px * var(--fs, 1))}.close-btn,.modal-card .icon-btn{min-width:44px;min-height:44px;width:44px;height:44px}.modal-input{height:44px;font-size:calc(16px * var(--fs, 1))}.conv-avatar-self{background:var(--accent-deep)}.empty-restore-note{margin-top:8px;font-size:calc(13px * var(--fs, 1));color:var(--text-muted)}a:focus-visible,button:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[role=button]:focus-visible{outline:2px solid var(--accent-deep);outline-offset:2px}.settings-page .backup-settings>.storage-used{display:block;padding:8px 16px 0}.settings-page .backup-settings>p{margin:0;padding:8px 16px 0;font-size:calc(14px * var(--fs, 1))}.settings-page .backup-settings>.backup-file-label{margin:12px 16px 16px}.modal-backdrop .btn-secondary,.modal-backdrop .btn-primary{min-height:44px;min-width:44px}.message-link{padding:11px 2px}input:focus-visible,.modal-input:focus-visible,.composer-input:focus-visible{outline:2px solid var(--accent-deep);outline-offset:1px}.nickname-modal-card{padding:20px;display:flex;flex-direction:column;gap:12px}.nickname-modal-card .confirm-friend-title,.nickname-modal-card .confirm-friend-desc{margin:0}.nickname-modal-card .confirm-friend-actions .btn-primary{min-height:44px}.notif-hint{margin:4px 16px 8px;font-size:calc(13px * var(--fs, 1));line-height:1.5;color:var(--text-secondary)}.switch-toggle:disabled{opacity:.45;cursor:not-allowed}.install-btn{min-height:44px}.profile-save-note{margin:4px 0 0;font-size:calc(13px * var(--fs, 1));color:var(--text-muted)}.profile-save-note .profile-save-sub{color:var(--text-muted)}.profile-save-note.failed{color:var(--danger, #b91c1c);font-weight:600}.c2-modal{z-index:1200}.c2-confirm{max-width:440px;color:var(--text-main);padding:24px;box-sizing:border-box;overflow-y:auto}.c2-confirm p{line-height:1.6;overflow-wrap:anywhere}.c2-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;margin-top:20px}.c2-actions button,.c2-revoke-device,#settings-blocked-users button,.c2-block-banner button{min-height:44px;min-width:44px;padding:10px 14px}.c2-block-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:12px 16px;background:var(--bg-surface);color:var(--text-main);border-top:1px solid var(--border-light)}.c2-block-banner [role=alert]{flex-basis:100%}.c2-username{min-width:0;overflow-wrap:anywhere}.c2-revoke-device{max-width:160px;flex-shrink:0}.c2-revoked-message{padding:12px;color:var(--text-main);background:var(--bg-surface);border:1px solid var(--border-light);border-radius:12px;line-height:1.6}.request-item{flex-wrap:wrap}.request-item button,.requests-panel .friend-card-actions button{min-height:44px;min-width:44px}.requests-panel .friend-card-actions{flex-wrap:wrap}.auth-tab-btn{min-height:44px}:root[data-theme=dark]{color-scheme:dark;--bg-app: #0e1317;--bg-surface: #171d23;--bg-subtle: #1c232a;--bg-muted: #222a32;--bg-track: #2e3842;--bg-disabled: #3a4550;--bg-chat-stream: #11171c;--chat-pattern-ink: #212b33;--bubble-incoming: #212932;--bubble-meta: #a3afbb;--text-main: #e8edf2;--text-secondary: #b8c3ce;--text-muted: #9eaab6;--text-faint: #8593a0;--border-light: #2c3640;--border-subtle: #222a32;--border-strong: #46525e;--status-ok: #34d399;--status-warn: #fbbf24;--danger-bg: #2c1618;--danger-bg-strong: #3d1a1d;--danger-border: #6b2a2f;--danger-text: #fca5a5;--danger-solid: #dc2626;--danger-solid-hover: #ef4444;--warn-bg: #2e2510;--warn-text: #fcd34d;--warn-border: #54421a;--ok-bg: #12291d;--ok-text: #86efac;--ok-border: #22543a;--info-bg: #132740;--info-text: #7dd3fc;--info-solid: #3b82f6;--link: #8ab4f8;--ink-solid: #2c3640;--hover-tint: rgba(255, 255, 255, .07);--hover-tint-strong: rgba(255, 255, 255, .14);--glass-bg: rgba(23, 29, 35, .88);--shadow-sm: 0 0 0 1px rgba(255, 255, 255, .04);--shadow-md: 0 0 0 1px rgba(255, 255, 255, .06);--shadow-lg: 0 0 0 1px rgba(255, 255, 255, .08), 0 12px 32px -4px rgba(0, 0, 0, .5);--shadow-drawer: 0 0 28px rgba(0, 0, 0, .6);--accent: #0f766e;--accent-deep: #115e59;--accent-text: #5eead4;--accent-soft: #12302d;--accent-tint: #0f2724;--accent-glow: rgba(94, 234, 212, .14);--accent-line: rgba(94, 234, 212, .32);--bubble-outgoing: #14443f;--bubble-outgoing-border: #1d5c55}:root[data-accent=blue]{--accent: #1d4ed8;--accent-deep: #1e40af;--accent-text: #1e40af;--accent-soft: #e0e9ff;--accent-tint: #eff4ff;--accent-glow: rgba(29, 78, 216, .15);--accent-line: rgba(29, 78, 216, .28);--bubble-outgoing: #d6e4ff;--bubble-outgoing-border: #b9d0ff}:root[data-accent=purple]{--accent: #7e22ce;--accent-deep: #6b21a8;--accent-text: #6b21a8;--accent-soft: #f1e5fd;--accent-tint: #f8f1ff;--accent-glow: rgba(126, 34, 206, .15);--accent-line: rgba(126, 34, 206, .28);--bubble-outgoing: #e7d4fb;--bubble-outgoing-border: #d5b8f6}:root[data-accent=pink]{--accent: #be185d;--accent-deep: #9d174d;--accent-text: #9d174d;--accent-soft: #fde4ef;--accent-tint: #fff0f6;--accent-glow: rgba(190, 24, 93, .15);--accent-line: rgba(190, 24, 93, .28);--bubble-outgoing: #fbd5e6;--bubble-outgoing-border: #f5b5d0}:root[data-accent=orange]{--accent: #c2410c;--accent-deep: #9a3412;--accent-text: #9a3412;--accent-soft: #ffe9d9;--accent-tint: #fff4ec;--accent-glow: rgba(194, 65, 12, .15);--accent-line: rgba(194, 65, 12, .28);--bubble-outgoing: #fddcc3;--bubble-outgoing-border: #f9c49f}:root[data-accent=gray]{--accent: #475569;--accent-deep: #334155;--accent-text: #334155;--accent-soft: #e6eaef;--accent-tint: #f1f4f7;--accent-glow: rgba(71, 85, 105, .15);--accent-line: rgba(71, 85, 105, .28);--bubble-outgoing: #dde3ea;--bubble-outgoing-border: #c8d0da}:root[data-theme=dark][data-accent=blue]{--accent: #2563eb;--accent-deep: #1d4ed8;--accent-text: #9dbbff;--accent-soft: #172447;--accent-tint: #121d3a;--accent-glow: rgba(147, 180, 255, .14);--accent-line: rgba(147, 180, 255, .32);--bubble-outgoing: #1e3470;--bubble-outgoing-border: #2a4690}:root[data-theme=dark][data-accent=purple]{--accent: #9333ea;--accent-deep: #7e22ce;--accent-text: #d8b4fe;--accent-soft: #2a1a40;--accent-tint: #22152f;--accent-glow: rgba(216, 180, 254, .14);--accent-line: rgba(216, 180, 254, .32);--bubble-outgoing: #3b2559;--bubble-outgoing-border: #503378}:root[data-theme=dark][data-accent=pink]{--accent: #db2777;--accent-deep: #be185d;--accent-text: #f9a8d4;--accent-soft: #3a1a2a;--accent-tint: #2d1621;--accent-glow: rgba(249, 168, 212, .14);--accent-line: rgba(249, 168, 212, .32);--bubble-outgoing: #5a2540;--bubble-outgoing-border: #763355}:root[data-theme=dark][data-accent=orange]{--accent: #c2410c;--accent-deep: #9a3412;--accent-text: #fdba74;--accent-soft: #3a2210;--accent-tint: #2d1b0e;--accent-glow: rgba(253, 186, 116, .14);--accent-line: rgba(253, 186, 116, .32);--bubble-outgoing: #5a3213;--bubble-outgoing-border: #774519}:root[data-theme=dark][data-accent=gray]{--accent: #64748b;--accent-deep: #475569;--accent-text: #cbd5e1;--accent-soft: #2a323b;--accent-tint: #222930;--accent-glow: rgba(203, 213, 225, .12);--accent-line: rgba(203, 213, 225, .3);--bubble-outgoing: #35404b;--bubble-outgoing-border: #465362}:root{--pat-dots: radial-gradient(var(--chat-pattern-ink) 1px, transparent 1px);--pat-grid: linear-gradient(var(--chat-pattern-ink) 1px, transparent 1px), linear-gradient(90deg, var(--chat-pattern-ink) 1px, transparent 1px);--pat-stripes: repeating-linear-gradient(135deg, var(--chat-pattern-ink) 0 1px, transparent 1px 14px);--pat-glow: radial-gradient(circle at 15% 10%, var(--accent-glow) 0, transparent 45%), radial-gradient(circle at 85% 90%, var(--accent-glow) 0, transparent 50%)}:root[data-chatbg=dots]{--bg-chat-pattern: var(--pat-dots);--bg-chat-size: 16px 16px}:root[data-chatbg=grid]{--bg-chat-pattern: var(--pat-grid);--bg-chat-size: 24px 24px}:root[data-chatbg=stripes]{--bg-chat-pattern: var(--pat-stripes);--bg-chat-size: auto}:root[data-chatbg=glow]{--bg-chat-pattern: var(--pat-glow);--bg-chat-size: auto}:root[data-fs=small]{--fs: .9}:root[data-fs=large]{--fs: 1.15}:root[data-fs=xl]{--fs: 1.3}input,textarea,select,.dialog-input{font-size:max(16px,calc(16px * var(--fs, 1)))}.privacy-cover{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--bg-app);color:var(--text-secondary);font-weight:600}.privacy-cover svg{color:var(--accent-text)}.appearance-group{display:flex;flex-direction:column;gap:8px;padding:12px 16px}.appearance-group>strong{font-size:calc(14px * var(--fs, 1));color:var(--text-main)}.seg{display:flex;flex-wrap:wrap;gap:8px}.seg-btn{flex:1 1 auto;min-height:44px;min-width:44px;padding:0 14px;border-radius:var(--radius-md);border:1.5px solid var(--border-light);background:var(--bg-surface);color:var(--text-main);font-weight:600;cursor:pointer;touch-action:manipulation}.seg-btn[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.swatch{flex:0 0 auto;width:44px;height:44px;padding:0;border-radius:50%;border:2px solid var(--border-light);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:#fff;touch-action:manipulation}.swatch[data-swatch=teal]{background:#0f766e}.swatch[data-swatch=blue]{background:#1d4ed8}.swatch[data-swatch=purple]{background:#7e22ce}.swatch[data-swatch=pink]{background:#be185d}.swatch[data-swatch=orange]{background:#c2410c}.swatch[data-swatch=gray]{background:#475569}.swatch[aria-pressed=true]{border-color:var(--text-main);box-shadow:0 0 0 2px var(--bg-surface) inset}.chatbg-preview{flex:1 1 calc(50% - 8px);min-height:56px;border-radius:var(--radius-md);border:1.5px solid var(--border-light);background-color:var(--bg-chat-stream);color:var(--text-main);font-weight:600;cursor:pointer;touch-action:manipulation}.chatbg-preview[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.chatbg-preview[data-bg=dots]{background-image:var(--pat-dots);background-size:16px 16px}.chatbg-preview[data-bg=grid]{background-image:var(--pat-grid);background-size:24px 24px}.chatbg-preview[data-bg=stripes]{background-image:var(--pat-stripes);background-size:auto}.chatbg-preview[data-bg=glow]{background-image:var(--pat-glow);background-size:auto}.chatbg-preview[data-bg=plain]{background-image:none}.shortcut-list{padding:12px 16px;font-size:calc(13px * var(--fs, 1));color:var(--text-secondary);line-height:1.8}.shortcut-list kbd{padding:1px 6px;border-radius:6px;border:1px solid var(--border-strong);background:var(--bg-muted);font:inherit;font-size:.9em}@media(max-width:767px){.shortcut-list{display:none}}.onboard-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:20px;background:#02061799}.onboard-card{width:100%;max-width:380px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:28px 24px 20px;display:flex;flex-direction:column;gap:14px;text-align:center;box-shadow:var(--shadow-lg)}.onboard-icon{align-self:center;width:64px;height:64px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);display:flex;align-items:center;justify-content:center}.onboard-card h2{font-size:calc(20px * var(--fs, 1));color:var(--text-main)}.onboard-card p{font-size:calc(15px * var(--fs, 1));line-height:1.55;color:var(--text-secondary)}.onboard-dots{display:flex;justify-content:center;gap:8px}.onboard-dots span{width:8px;height:8px;border-radius:50%;background:var(--border-strong)}.onboard-dots span.on{background:var(--accent)}.onboard-actions{display:flex;flex-direction:column;gap:8px}.onboard-actions button{min-height:48px;border-radius:var(--radius-md);font-weight:600;cursor:pointer;border:0}.onboard-primary{background:var(--accent);color:var(--on-solid)}.onboard-skip{background:transparent;color:var(--text-secondary)}@media(prefers-color-scheme:dark){html:not([data-theme]),html:not([data-theme]) body,html:not([data-theme]) #root{background:#0e1317}}:root{--placeholder: #566678}:root[data-theme=dark]{--placeholder: var(--text-muted)}input::placeholder,textarea::placeholder{color:var(--placeholder);opacity:1}.composer-input{scrollbar-width:none}.composer-input::-webkit-scrollbar{display:none}.pressable{-webkit-touch-callout:none}@media(pointer:coarse){.pressable,.message-bubble{-webkit-user-select:none;user-select:none}}.row-flags{display:inline-flex;align-items:center;gap:4px;margin-left:6px;color:var(--text-muted);vertical-align:middle}.draft-label{color:var(--danger-text);font-weight:600}.conv-unread-badge.muted{background:var(--text-muted);color:var(--bg-surface)}.friend-row-wrap{display:flex;align-items:center;gap:4px}.friend-row-wrap .friend-row-btn{flex:1;min-width:0;width:auto}.star-btn{flex:0 0 auto;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:none;border:0;border-radius:50%;color:var(--text-faint);cursor:pointer;touch-action:manipulation}.star-btn.on{color:#f59e0b}.star-btn.on svg{fill:currentColor}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#0206178c;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:480px;background:var(--bg-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;border:1px solid var(--border-light)}.sheet-title{padding:10px 14px 6px;font-size:calc(13px * var(--fs, 1));font-weight:600;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-item{min-height:48px;display:flex;align-items:center;gap:12px;padding:0 14px;background:none;border:0;border-radius:var(--radius-md);color:var(--text-main);font-size:calc(15px * var(--fs, 1));text-align:left;cursor:pointer}.sheet-item:hover{background:var(--bg-subtle)}.sheet-item.danger{color:var(--danger-text)}.sheet-cancel{justify-content:center;color:var(--text-secondary);font-weight:600;margin-top:4px;border-top:1px solid var(--border-light);border-radius:0 0 var(--radius-md) var(--radius-md)}.bubble-more{position:absolute;top:2px;right:2px;width:28px;height:28px;display:none;align-items:center;justify-content:center;background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-light);border-radius:50%;cursor:pointer;padding:0}.bubble-more:before{content:"";position:absolute;top:-9px;right:-9px;bottom:-9px;left:-9px}@media(hover:hover)and (pointer:fine){.message-bubble:hover .bubble-more,.bubble-more:focus-visible{display:inline-flex}}.message-bubble{position:relative}.search-hit{background:#fde68a;color:#1f2937;border-radius:3px;padding:0 1px}.search-hit.current{background:#f59e0b;outline:2px solid var(--text-main)}.room-search-bar{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-surface);border-bottom:1px solid var(--border-light);flex-shrink:0;color:var(--text-secondary)}.room-search-bar input{flex:1;min-width:0;min-height:44px;border:0;background:transparent;color:var(--text-main);outline:none}.search-count{font-size:calc(13px * var(--fs, 1));color:var(--text-secondary);min-width:44px;text-align:center}.room-search-bar .icon-btn{width:44px;height:44px}.room-search-bar .icon-btn:disabled{opacity:.4}.drop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:95;pointer-events:none;display:flex;align-items:center;justify-content:center;background:#0206178c}.drop-overlay span{padding:28px 40px;border:3px dashed var(--on-solid);border-radius:var(--radius-lg);color:var(--on-solid);font-size:calc(20px * var(--fs, 1));font-weight:700}.thumb-strip{display:flex;gap:8px;overflow-x:auto;flex:1;min-width:0;padding:4px 0}.thumb{position:relative;flex:0 0 auto;width:56px;height:56px}.thumb img{width:56px;height:56px;object-fit:cover;border-radius:var(--radius-sm);display:block}.thumb-remove{position:absolute;top:-6px;right:-6px;width:44px;height:44px;margin:-11px;display:inline-flex;align-items:flex-start;justify-content:flex-end;background:none;border:0;color:var(--on-solid);cursor:pointer;padding:11px}.thumb-remove svg{background:var(--ink-solid);border-radius:50%;padding:3px;width:20px;height:20px}.album-bubble{padding:4px}.album-grid{display:grid;gap:3px;width:min(260px,64vw)}.album-grid.n2,.album-grid.n3{grid-template-columns:1fr 1fr}.album-grid.n3 .album-cell:first-child{grid-column:1 / -1}.album-grid.n4{grid-template-columns:1fr 1fr}.album-cell{aspect-ratio:1 / 1;overflow:hidden;border-radius:8px;background:var(--bg-muted)}.album-cell .chat-image-btn,.album-cell .chat-image-skeleton,.album-cell .chat-image-missing{width:100%;height:100%;max-width:none}.album-cell .chat-image{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}.image-viewer-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:0;background:#ffffff29;color:var(--on-solid);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;z-index:2}.image-viewer-nav.prev{left:12px}.image-viewer-nav.next{right:12px}.image-viewer-nav:disabled{opacity:.3;cursor:default}.image-viewer-count{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);color:var(--on-solid);font-weight:600;background:#00000073;padding:4px 12px;border-radius:999px}.room-media{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--bg-app);display:flex;flex-direction:column}.room-media-head{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-surface);border-bottom:1px solid var(--border-light)}.room-media-head h2{font-size:calc(17px * var(--fs, 1));color:var(--text-main)}.room-media-tabs{display:flex;gap:8px;padding:10px 12px}.room-media-tabs .seg-btn{flex:1}.room-media-tabs .seg-btn.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.room-media-body{flex:1;overflow-y:auto;padding:0 12px 16px}.room-media-empty{padding:40px 0;text-align:center;color:var(--text-muted)}.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.media-cell{aspect-ratio:1 / 1;overflow:hidden;border-radius:6px;background:var(--bg-muted)}.media-cell .chat-image-btn,.media-cell .chat-image-skeleton{width:100%;height:100%}.media-cell .chat-image{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}.link-list{list-style:none;display:flex;flex-direction:column;gap:4px}.link-list li{display:flex;flex-direction:column;gap:2px;padding:10px 12px;min-height:44px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-md)}.link-list li small{color:var(--text-muted)}.link-list a{overflow-wrap:anywhere}.storage-rooms{list-style:none;padding:0 16px 8px;display:flex;flex-direction:column;gap:6px}.storage-rooms li{display:flex;justify-content:space-between;gap:12px;font-size:calc(14px * var(--fs, 1));color:var(--text-main)}@media(min-width:768px){.room-media{left:76px}}.album-grid.n5{grid-template-columns:1fr 1fr 1fr}.reply-quote{display:flex;flex-direction:column;gap:1px;width:100%;min-height:44px;margin:0 0 6px;padding:6px 10px;text-align:left;cursor:pointer;background:var(--hover-tint);color:var(--text-main);border:0;border-left:3px solid var(--accent-text);border-radius:8px;font:inherit}.reply-quote strong{font-size:calc(12px * var(--fs, 1));color:var(--accent-text);font-weight:600}.reply-quote span{font-size:calc(13px * var(--fs, 1));color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.message-row.flash .message-bubble{animation:msg-flash 1.2s ease-out}@keyframes msg-flash{0%,40%{box-shadow:0 0 0 3px var(--accent-line),0 0 0 6px var(--accent-glow)}to{box-shadow:0 1px 2px #00000014}}@media(prefers-reduced-motion:reduce){.message-row.flash .message-bubble{animation:none;box-shadow:0 0 0 3px var(--accent-line)}}.reply-bar{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 12px;margin:0 0 6px;background:var(--bg-subtle);border-left:3px solid var(--accent-text);border-radius:8px}.reply-bar-text{flex:1;min-width:0;display:flex;flex-direction:column}.reply-bar-text strong{font-size:calc(12px * var(--fs, 1));color:var(--accent-text);font-weight:600}.reply-bar-text span{font-size:calc(13px * var(--fs, 1));color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reply-bar .icon-btn{width:44px;height:44px;flex:none}.reaction-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.reaction-badge{position:relative;min-width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:calc(14px * var(--fs, 1));line-height:1;background:transparent;border:0;border-radius:0;cursor:pointer}.reaction-badge>span{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:26px;padding:0 8px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:13px;pointer-events:none}.reaction-badge.mine>span{border-color:var(--accent-line);background:var(--accent-soft)}.emoji-row{display:flex;justify-content:space-between;gap:2px;padding:6px 4px 8px;border-bottom:1px solid var(--border-light);margin-bottom:4px}.emoji-pick{flex:1;min-width:44px;height:48px;font-size:calc(24px * var(--fs, 1));background:none;border:0;border-radius:var(--radius-md);cursor:pointer}.emoji-pick:hover{background:var(--bg-subtle)}.emoji-pick.on{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent-line)}.typing-text{color:var(--accent-text);font-style:italic}.read-label{color:var(--accent-text);font-weight:600}.status-icon.delivered.read,.status-icon.read{color:var(--accent-text)}.forward-sheet{max-height:min(80vh,560px)}.forward-search{margin:4px 6px 8px;min-height:44px;padding:0 12px;background:var(--bg-subtle);color:var(--text-main);border:1px solid var(--border-light);border-radius:var(--radius-md);font:inherit;font-size:16px}.forward-list{display:flex;flex-direction:column;overflow-y:auto;min-height:0}.forward-empty{padding:14px;color:var(--text-muted);text-align:center}.forward-item.on{background:var(--accent-soft)}.forward-check{width:22px;height:22px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--border-strong);border-radius:6px;color:var(--accent-text)}.forward-item.on .forward-check{border-color:var(--accent-text)}.forward-send{min-height:48px;margin:8px 6px 0;border:0;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-weight:600;font-size:calc(15px * var(--fs, 1));cursor:pointer}.forward-send:disabled{background:var(--bg-disabled);color:var(--text-faint);cursor:not-allowed}.forward-warn{margin:8px 6px 0;padding:8px 12px;border-radius:var(--radius-md);background:var(--bg-subtle);border:1px solid var(--border-light);color:var(--text-secondary);font-size:calc(13px * var(--fs, 1));line-height:1.4}.disappear-card{max-width:380px}.disappear-card .confirm-friend-title{display:flex;align-items:center;gap:8px}.disappear-options{display:flex;flex-direction:column;gap:6px;margin:8px 0}.disappear-option{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 14px;background:var(--bg-subtle);color:var(--text-main);border:1px solid var(--border-light);border-radius:var(--radius-md);font:inherit;font-size:calc(15px * var(--fs, 1));cursor:pointer;text-align:left}.disappear-option.on{background:var(--accent-soft);border-color:var(--accent-line);font-weight:600}.disappear-radio{width:18px;height:18px;flex:none;border:2px solid var(--border-strong);border-radius:50%}.disappear-option.on .disappear-radio{border-color:var(--accent-text);box-shadow:inset 0 0 0 3px var(--bg-surface);background:var(--accent-text)}.disappear-note{margin:0 0 8px;font-size:calc(12.5px * var(--fs, 1));line-height:1.5;color:var(--text-secondary)}.safety-code-card .modal-body{display:flex;flex-direction:column;gap:12px}.safety-code-help{margin:0;font-size:calc(13px * var(--fs, 1));line-height:1.5;color:var(--text-secondary)}.safety-code-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 6px;padding:12px;background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:var(--radius-md)}.safety-code-group{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:calc(16px * var(--fs, 1));font-weight:600;letter-spacing:.04em;text-align:center;color:var(--text-main)}.safety-code-loading{grid-column:1 / -1;text-align:center;color:var(--text-muted)}.safety-code-qr{display:flex;justify-content:center}.safety-code-qr canvas{background:#fff;border-radius:10px;max-width:100%;height:auto}.safety-code-status{display:flex;align-items:center;justify-content:center;gap:6px;margin:0;font-weight:600;color:var(--accent-text)}.verified-mark{color:var(--accent-text);vertical-align:-2px;margin-left:4px}.ttl-mark{color:var(--text-secondary);vertical-align:-2px;margin-left:4px}.system-line{display:flex;align-items:center;justify-content:center;gap:6px;margin:10px auto;padding:4px 12px;max-width:90%;font-size:calc(12px * var(--fs, 1));color:var(--text-secondary);text-align:center}.system-line svg{flex:none}.room-banner{display:flex;align-items:flex-start;gap:10px;margin:8px 12px 0;padding:10px 12px;background:var(--bg-subtle);border:1px solid var(--border-light);border-left:3px solid #d97706;border-radius:var(--radius-md);font-size:calc(13px * var(--fs, 1));line-height:1.5;color:var(--text-main)}.room-banner>svg{flex:none;margin-top:2px;color:#d97706}.room-banner-text{flex:1;min-width:0}.room-banner-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.room-banner-actions button{min-height:44px;padding:0 14px;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-main);font:inherit;font-size:calc(13px * var(--fs, 1));cursor:pointer}.room-banner-actions button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.bubble-ttl{display:inline-flex;align-items:center;margin-right:4px;color:var(--bubble-meta);vertical-align:-2px}.attach-wrap{position:relative;display:flex;flex-shrink:0}.attach-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:transparent}.attach-menu{position:absolute;left:0;bottom:52px;z-index:41;min-width:168px;padding:6px;display:flex;flex-direction:column;gap:2px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:0 8px 24px #0000002e}.attach-menu button{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:var(--text-main);font-size:calc(14px * var(--fs, 1));text-align:left;cursor:pointer}.attach-menu button:hover,.attach-menu button:focus-visible{background:var(--bg-subtle)}.file-bubble{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:220px;max-width:100%;padding:2px 0}.file-icon{width:44px;height:44px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:var(--accent-soft);color:var(--accent-text)}.file-icon span{font-size:9px;font-weight:700;letter-spacing:.02em;line-height:1}.file-info{display:flex;flex-direction:column;min-width:0}.file-name{font-size:calc(14px * var(--fs, 1));font-weight:600;color:var(--text-main);overflow-wrap:anywhere;line-height:1.3}.file-size{color:var(--text-muted);font-size:calc(12px * var(--fs, 1))}.file-save,.file-cancel{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:44px;padding:0 12px;border:1px solid var(--border-light);border-radius:999px;background:var(--bg-surface);color:var(--accent-text);font-size:calc(13px * var(--fs, 1));font-weight:600;cursor:pointer}.file-save:disabled{opacity:.6;cursor:wait}.file-progress{grid-column:1 / -1;position:relative;height:22px;border-radius:999px;overflow:hidden;background:var(--bg-track)}.file-progress-bar{position:absolute;inset:0 auto 0 0;background:var(--accent-soft);border-right:2px solid var(--accent-deep);transition:width .15s linear}.file-progress span{position:relative;display:block;line-height:22px;text-align:center;font-size:calc(12px * var(--fs, 1));color:var(--text-main)}.file-note{grid-column:1 / -1;font-size:calc(12px * var(--fs, 1));color:var(--text-muted)}.file-note-err{color:var(--danger, #b91c1c)}.file-list li{padding:8px 12px}.composer-file-preview{display:flex;flex-wrap:wrap;gap:6px;padding:6px 8px 0}.file-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:44px;padding:0 4px 0 10px;border:1px solid var(--border-light);border-radius:999px;background:var(--bg-subtle);color:var(--text-main);font-size:calc(13px * var(--fs, 1))}.file-chip small{color:var(--text-muted)}.file-chip-name{overflow-wrap:anywhere}.thumb-remove-inline{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer}.profile-settings{display:flex;flex-direction:column;gap:14px;padding:14px}.profile-preview{display:flex;align-items:center;gap:12px}.profile-preview small{color:var(--text-muted)}.profile-field{display:flex;flex-direction:column;gap:8px}.swatch-row,.emoji-grid{display:flex;flex-wrap:wrap;gap:8px}.swatch{width:44px;height:44px;border-radius:50%;border:2px solid transparent;color:#fff;font-weight:700;cursor:pointer}.swatch-auto{background:var(--bg-subtle);color:var(--text-main);border-color:var(--border-light)}.swatch.on{outline:3px solid var(--text-main);outline-offset:2px}.emoji-cell{width:44px;height:44px;border-radius:10px;border:1px solid var(--border-light);background:var(--bg-surface);font-size:22px;line-height:1;cursor:pointer;color:var(--text-main)}.emoji-none{font-size:14px;font-weight:700}.emoji-cell.on{outline:3px solid var(--accent-deep);outline-offset:1px;background:var(--accent-soft)}.profile-status-input{min-height:44px;padding:0 12px;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-main);font-size:calc(15px * var(--fs, 1))}.profile-field>small{color:var(--text-muted);align-self:flex-end}.contact-status-line,.chat-status-line{color:var(--text-muted);font-size:calc(12px * var(--fs, 1));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}@media(hover:hover){.message-bubble .file-bubble{margin-top:12px}}.chat-history-area{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.chat-history-area>.message-stream{flex:1;min-height:0}.chat-history-area>.jump-bottom-btn{bottom:12px}
