:root{color-scheme:dark;--bg: #0f1117;--surface: #1a1d27;--surface2: #242836;--border: #2e3345;--text: #e8eaef;--muted: #8b92a8;--accent: #d4a824;--accent-hover: #e8bc3a;--accent-muted: rgba(212, 168, 36, .14);--link: #e0c060;--link-hover: #f0d070;--danger: #e74c3c;--success: #2ecc71;--radius: 12px;--font: "DM Sans", system-ui, sans-serif;--mono: "JetBrains Mono", monospace;--glass-bg: rgba(12, 16, 26, .38);--glass-border: rgba(255, 255, 255, .14);--glass-shadow: 0 12px 40px rgba(0, 0, 0, .22);--glass-blur: blur(20px) saturate(1.25);--tab-bar-height: 0px;--keyboard-inset: 0px;--viewport-height: 100dvh;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--app-bg-image: linear-gradient(rgba(15, 17, 23, .45), rgba(15, 17, 23, .55)), none}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%}#root{position:relative;z-index:1}body{font-family:var(--font);background-color:var(--bg);background-image:var(--app-bg-image);background-size:cover;background-position:center;background-attachment:fixed;color:var(--text);min-height:100vh}.app-bg-layer:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-color:var(--bg);background-image:var(--app-bg-image);background-size:cover;background-position:center}.app-bg-fixed{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden;background-color:var(--bg)}.app-bg-img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.app-bg-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(#0f111773,#0f11178c)}.loading{display:grid;place-items:center;min-height:100vh;color:var(--muted);position:relative}.auth-page{min-height:100vh;display:grid;place-items:center;padding:1rem;background:transparent;position:relative}.auth-page.app-bg-layer:before,.loading.app-bg-layer:before{z-index:0}.auth-page>*,.loading>*{position:relative;z-index:1}.auth-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--radius);padding:2rem;width:100%;max-width:400px}.auth-card-wide{max-width:460px}.auth-primary-link{display:inline-block;margin-top:1rem;color:var(--link);font-weight:600;text-decoration:none}.auth-primary-link:hover{color:var(--link-hover)}.auth-resend-btn{width:100%;margin-top:1rem}.auth-resend-inline{margin-top:.5rem;background:transparent;border:1px solid var(--border);color:var(--link);padding:.5rem .75rem;border-radius:8px;cursor:pointer;font-size:.9rem;width:100%}.auth-resend-inline:hover:not(:disabled){border-color:var(--accent);color:var(--accent-hover)}.success-text{color:var(--success)}.logo{font-size:1.75rem;font-weight:700;margin-bottom:.25rem}.app-logo{display:inline-flex;align-items:center;gap:.55rem}.app-logo-img{object-fit:contain;flex-shrink:0;display:block}.app-logo-text{font-weight:700;color:var(--text);line-height:1.1}.app-logo-lg,.app-logo-stack{display:flex;flex-direction:column;align-items:center;gap:.65rem;margin-bottom:.35rem}.app-logo-lg .app-logo-text{font-size:1.75rem}.app-logo-md .app-logo-text,.app-logo-sm .app-logo-text{font-size:1.05rem}.auth-card .app-logo-lg{margin-bottom:.5rem}.unlock-heading{font-size:1.35rem;font-weight:600;text-align:center;margin:.25rem 0 .35rem}.subtitle{color:var(--muted);margin-bottom:1.5rem;font-size:.95rem}label{display:block;margin-bottom:1rem;font-size:.85rem;color:var(--muted)}textarea{display:block;width:100%;margin-top:.35rem;padding:.65rem .85rem;background:var(--surface2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:inherit;font-size:1rem;resize:vertical}input,textarea{display:block;width:100%;margin-top:.35rem;padding:.65rem .85rem;background-color:#242836;border:1px solid #3d4459;border-radius:8px;color:#fff;-webkit-text-fill-color:#ffffff;caret-color:#fff;font-family:inherit;font-size:1rem;line-height:1.4}.vault-input,.new-project-form input,.cred-form input,.compose input,.compose textarea{color:#fff!important;-webkit-text-fill-color:#ffffff!important;caret-color:#fff!important;background-color:#1a1f2e!important;border:2px solid #4a5568!important;font-size:1rem!important;min-height:42px}.vault-input:focus,.new-project-form input:focus,.cred-form input:focus{border-color:var(--accent)!important;outline:none!important;box-shadow:0 0 0 3px var(--accent-muted)}.new-project-form{margin-bottom:1rem;display:flex;flex-direction:column;gap:.5rem}.new-project-form label{margin-bottom:0;font-size:.85rem;color:#8b92a8}.new-project-form input{margin-top:0}.vault-add-btn{width:100%;margin-top:.25rem}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,textarea:-webkit-autofill{-webkit-text-fill-color:var(--text)!important;caret-color:var(--text);box-shadow:0 0 0 1000px var(--surface2) inset!important;transition:background-color 9999s ease-out 0s}input:focus{outline:2px solid var(--accent);border-color:transparent}.auth-card input,.auth-card textarea,.auth-card .password-field input{background-color:#12182466!important;border-color:#ffffff24!important}.auth-card input:-webkit-autofill,.auth-card input:-webkit-autofill:hover,.auth-card input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text)!important;box-shadow:0 0 0 1000px #12182480 inset!important}.password-field{position:relative;margin-top:.35rem}.password-field input{margin-top:0;padding-right:2.75rem}.password-toggle{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;padding:.25rem .4rem;font-size:1.1rem;line-height:1;cursor:pointer;opacity:.7}.password-toggle:hover{opacity:1;background:none}button{font-family:inherit;cursor:pointer;border:none;border-radius:8px;padding:.65rem 1.25rem;background:var(--accent);color:#fff;font-weight:600;font-size:.95rem}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.6;cursor:not-allowed}button.danger{background:var(--danger)}.link-btn{background:none;color:var(--muted);margin-top:1rem;width:100%}.hint{font-size:.8rem;color:var(--muted);margin-bottom:1rem;line-height:1.4}.error{color:var(--danger);font-size:.85rem;margin-bottom:.75rem}.success{color:var(--success);font-size:.85rem;margin-top:.75rem}.auth-link{text-align:center;margin-top:1.25rem;color:var(--muted);font-size:.9rem}.auth-link a{color:var(--link)}.auth-inline-btn{background:none;border:none;padding:0;font:inherit;color:var(--link);cursor:pointer;text-decoration:underline}.settings-lang-select{max-width:16rem;margin-top:.35rem}.auth-error-block{margin-bottom:.75rem}.auth-error-block .error{margin-bottom:.35rem}.auth-error-link{display:inline-block;font-size:.9rem;color:var(--link);font-weight:600;text-decoration:none}.auth-error-link:hover{text-decoration:underline}.dashboard{display:flex;min-height:100vh;background:transparent;position:relative}.dashboard.app-bg-layer:before{z-index:0}.dashboard>*{position:relative;z-index:1}.sidebar{width:220px;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-right:1px solid var(--glass-border);display:flex;flex-direction:column;padding:1.25rem 0 0}.sidebar-header{padding:0 1.25rem 1rem;border-bottom:1px solid var(--glass-border)}.logo-sm{font-weight:700;display:block;font-size:1.05rem}.logo-mark{filter:none}.username{font-size:.8rem;color:var(--muted);margin-top:.2rem;display:block}.e2ee-badge{display:flex;align-items:center;gap:.4rem;margin-top:.65rem;font-size:.72rem;color:var(--muted)}.e2ee-dot{width:7px;height:7px;border-radius:50%;background:var(--muted);flex-shrink:0}.e2ee-secure .e2ee-dot{background:var(--success);box-shadow:0 0 6px #2ecc718c}.e2ee-offline .e2ee-dot{background:var(--danger)}.e2ee-checking .e2ee-dot{background:var(--accent);animation:pulse-rec 1.2s ease-in-out infinite}.sidebar nav{flex:1;padding:.75rem 0}.sidebar nav a{display:block;padding:.65rem 1.25rem;color:var(--muted);text-decoration:none;font-size:.95rem;font-weight:500}.sidebar nav a.active{color:var(--link);background:var(--accent-muted);border-right:2px solid var(--accent)}.sidebar nav a:hover{color:var(--text);background:var(--surface2)}.nav-link-with-badge{display:flex!important;align-items:center;justify-content:space-between;gap:.5rem}.nav-badge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e74c3c;color:#fff;font-size:.65rem;font-weight:700;line-height:18px;text-align:center}.sidebar-footer{border-top:1px solid var(--glass-border);padding:.5rem 0 1rem}.app-toast-stack{position:fixed;top:.75rem;right:.75rem;z-index:1200;display:flex;flex-direction:column;gap:.5rem;max-width:min(360px,calc(100vw - 1.5rem));pointer-events:none}.app-toast{pointer-events:auto;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:.15rem .5rem;width:100%;padding:.75rem .85rem;border:1px solid rgba(212,168,36,.45);border-radius:var(--radius);background:#161922f5;box-shadow:0 8px 24px #00000059;color:var(--text);text-align:left;cursor:pointer}.app-toast strong{grid-column:1;font-size:.9rem}.app-toast span:not(.app-toast-close){grid-column:1;color:var(--muted);font-size:.82rem}.app-toast-close{grid-column:2;grid-row:1 / span 2;align-self:start;color:var(--muted);font-size:1.1rem;line-height:1;padding:0 .15rem}.app-toast:hover{border-color:var(--accent)}.platform-android .app-toast-stack{top:calc(.75rem + env(safe-area-inset-top,0px))}.app-version{display:block;padding:0 1.25rem .35rem;font-size:.72rem;color:var(--muted);letter-spacing:.02em}.settings-version{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border);font-size:.85rem;color:var(--muted);text-align:center}.sidebar-logout{display:block;width:100%;text-align:left;padding:.65rem 1.25rem;background:none;color:var(--muted);font-weight:400;font-size:.9rem;border-radius:0}.sidebar-logout:hover{background:none;color:var(--text)}.main-content{flex:1;overflow:hidden;background:#0f111759}.chat-view,.vault-view{display:flex;height:100vh}.chat-sidebar,.vault-projects{width:260px;border-right:1px solid var(--glass-border);padding:1rem;overflow-y:auto;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.chat-sidebar h2,.vault-projects h2{font-size:1rem;margin-bottom:.75rem}.user-list{list-style:none;margin-top:.5rem}.user-list button{width:100%;text-align:left;background:none;color:var(--text);padding:.5rem;font-weight:400}.user-list button.active,.user-list button:hover{background:var(--surface2);border-radius:6px}.chat-main{flex:1;display:flex;flex-direction:column;min-height:0}.chat-main header{padding:1rem 1.25rem;font-weight:600}.chat-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;position:relative;z-index:50;flex-shrink:0;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--glass-border)}.chat-header-info{display:flex;align-items:center;gap:.65rem;min-width:0}.chat-header-info small{display:block;font-weight:400;opacity:.7}.disappear-badge{display:inline-block;margin-top:.15rem;font-size:.72rem;font-weight:500;opacity:.85}.chat-settings-btn{flex-shrink:0}.chat-settings-panel{padding:.75rem 1.25rem;border-bottom:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.chat-settings-panel h4{margin:0 0 .35rem;font-size:.95rem}.disappear-options{display:flex;flex-wrap:wrap;gap:.35rem;margin:.65rem 0}.disappear-options button{padding:.35rem .65rem;font-size:.82rem;background:var(--surface2);border-radius:6px}.disappear-options button.active{background:var(--accent);color:#fff}.security-hint{margin:.5rem 0 0;font-size:.78rem}.bubble.system{align-self:center;max-width:90%;background:transparent;border:1px dashed var(--border);color:var(--muted);font-size:.82rem;text-align:center;padding:.45rem .75rem}.expires-hint{display:block;font-size:.68rem;opacity:.75;margin-top:.2rem}.messages{flex:1;min-height:0;overflow-y:auto;overflow-anchor:none;padding:.75rem 1rem 1rem;display:flex;flex-direction:column-reverse;gap:.35rem}.bubble{max-width:min(88%,30rem);width:fit-content;padding:.45rem .75rem .5rem;border-radius:12px;font-size:.9375rem;line-height:1.45;position:relative;box-shadow:0 1px 1px #0000001f}.bubble-body{min-width:0}.message-row{display:flex;flex-direction:column;max-width:100%}.message-row.selecting{flex-direction:row;align-items:flex-end;gap:.35rem}.message-row.selecting.mine{flex-direction:row-reverse}.message-row.selecting.theirs{flex-direction:row}.message-row-body{display:flex;flex-direction:column;max-width:100%}.message-row.theirs .message-row-body{align-items:flex-start}.message-row.mine .message-row-body,.message-row.selecting.mine .message-row-body{align-items:flex-end}.message-row.selecting.theirs .message-row-body{align-items:flex-start}.message-select-check{flex-shrink:0;width:1.75rem;height:1.75rem;border:none;border-radius:999px;background:var(--surface2);color:var(--text);font-size:1rem;line-height:1;cursor:pointer;margin-bottom:.15rem}.message-select-check.checked{background:color-mix(in srgb,var(--accent) 22%,var(--surface2));color:var(--accent)}.bubble.message-selected{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:1px}.bubble.message-pinned{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.bubble-forward-quote{display:block;margin:-.15rem 0 .4rem;padding:.35rem .55rem;border-left:3px solid var(--muted);border-radius:6px;background:#0000001a;font-size:.82rem}.bubble-forward-label{display:block;font-weight:600;opacity:.85;margin-bottom:.15rem}.bubble-forward-preview{display:block;opacity:.8;white-space:pre-wrap;overflow-wrap:break-word;word-break:normal}.chat-pinned-bar{display:flex;align-items:center;gap:.55rem;width:100%;padding:.55rem .85rem;border:none;border-bottom:1px solid var(--border);background:var(--surface2);color:var(--text);text-align:left;cursor:pointer}.chat-pinned-icon{flex-shrink:0}.chat-pinned-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.chat-pinned-author{font-size:.78rem;font-weight:600;color:var(--accent)}.chat-pinned-preview{font-size:.82rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-search-panel{flex-shrink:0;padding:.55rem .75rem;border-bottom:1px solid var(--border);background:var(--surface2);max-height:min(40vh,280px);display:flex;flex-direction:column;gap:.35rem}.chat-search-bar{display:flex;align-items:center;gap:.35rem}.chat-search-input{flex:1;min-width:0;margin:0;padding:.5rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.95rem}.chat-search-close{flex-shrink:0;width:2rem;height:2rem;border:none;border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer}.chat-search-hint{margin:0;font-size:.78rem;color:var(--muted)}.chat-search-results{list-style:none;margin:0;padding:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.chat-search-hit{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;padding:.55rem .45rem;border:none;border-radius:8px;background:transparent;color:inherit;text-align:left;cursor:pointer}.chat-search-hit:hover{background:var(--surface)}.chat-search-hit-author{font-size:.78rem;font-weight:600;color:var(--accent)}.chat-search-hit-preview{font-size:.88rem;line-height:1.35;word-break:break-word}.chat-search-hit-time{font-size:.72rem;color:var(--muted)}.platform-android .chat-search-panel{padding:.5rem .65rem}.chat-pinned-unpin{flex-shrink:0;padding:.15rem .35rem;color:var(--muted);cursor:pointer}.message-select-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .85rem;border-top:1px solid var(--border);background:var(--surface)}.message-select-count{font-size:.88rem;color:var(--muted);white-space:nowrap}.message-select-actions{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.message-select-actions button{border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--text);padding:.4rem .75rem;font-size:.85rem;cursor:pointer}.message-select-actions button.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--border))}.forward-message-modal input[type=search]{width:100%;margin:.5rem 0 .75rem}.forward-target-list{max-height:min(50vh,22rem);overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}.forward-target-row{display:flex;align-items:center;gap:.65rem;width:100%;border:none;border-radius:10px;background:transparent;color:inherit;padding:.55rem .65rem;text-align:left;cursor:pointer}.forward-target-row:hover:not(:disabled){background:var(--surface2)}.forward-target-label{display:flex;flex-direction:column;gap:.1rem;min-width:0}.forward-target-label small{color:var(--muted);font-size:.78rem}.message-reaction-bar-expanded{flex-wrap:wrap;max-width:min(calc(100vw - 24px),20rem);border-radius:16px}.message-row.mine{align-self:flex-end;align-items:flex-end}.message-row.theirs{align-self:flex-start;align-items:flex-start}.message-row .bubble.mine,.message-row .bubble.theirs{align-self:auto}.bubble.message-openable{cursor:default}.bubble.message-openable .bubble-body,.bubble.message-openable .bubble-text{-webkit-user-select:text;user-select:text;cursor:text;-webkit-touch-callout:default}.bubble.message-openable .msg-status{-webkit-user-select:none;user-select:none;cursor:default}.bubble-text{white-space:pre-wrap;overflow-wrap:break-word;word-break:normal;line-height:1.5;letter-spacing:.01em}.chat-inline-code{font-family:var(--mono);font-size:.92em;padding:.1em .38em;border-radius:5px;background:#0003;vertical-align:baseline;white-space:pre-wrap;word-break:break-word}.bubble.theirs .chat-inline-code{color:#6ee7b7;background:#00000047}.bubble.mine .chat-inline-code{color:#0f172a;background:#ffffff61}.chat-code-block{display:block;margin:.4rem 0 .25rem;padding:.5rem .65rem;border-radius:8px;background:#00000038;font-family:var(--mono);font-size:.875em;line-height:1.5;white-space:pre-wrap;overflow-x:auto;max-width:100%}.chat-code-block code{font-family:inherit;background:none;padding:0}.bubble.mine .chat-code-block{background:#0000001a}.bubble.theirs .chat-code-block{color:#e2e8f0}.chat-underline{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.bubble-text strong{font-weight:700}.bubble-text em{font-style:italic}.bubble ::selection{background:#38bdf861}.bubble.mine ::selection{background:#0f172a33}.chat-link{pointer-events:auto;cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;overflow-wrap:anywhere;word-break:break-word;user-select:auto;-webkit-user-select:auto;display:inline;vertical-align:baseline;max-width:100%}.chat-link-with-favicon{display:inline;white-space:normal}.chat-link-with-favicon .chat-link-favicon{display:inline-block;margin-right:.2rem}.chat-link-favicon{width:15px;height:15px;border-radius:50%;flex-shrink:0;object-fit:cover;background:#fffffff2;vertical-align:-2px;box-shadow:0 0 0 1px #00000014}.chat-link-text{overflow-wrap:anywhere;word-break:break-word}.bubble.mine .chat-link{color:#1e40af;font-weight:inherit}.bubble.theirs .chat-link{color:#7ec8ff;font-weight:inherit}.bubble.message-openable:hover{filter:none}.bubble-reply-quote{display:block;width:100%;text-align:left;cursor:pointer;border:none;font:inherit;color:inherit;margin:-.15rem 0 .4rem;padding:.35rem .55rem;border-left:3px solid var(--accent);border-radius:6px;background:#0000001f;font-size:.82rem;opacity:.92;white-space:pre-wrap;overflow-wrap:break-word;word-break:normal;overflow:hidden;text-overflow:ellipsis}.bubble-reply-quote:hover{background:#0000002e}.message-row.message-highlight .bubble{animation:message-flash 2.2s ease-out}@keyframes message-flash{0%,15%{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 70%,transparent)}to{box-shadow:0 1px 1px #0000001f}}.message-reaction-chip{cursor:pointer;border:none;font:inherit}.link-preview-card{display:flex;flex-direction:row;align-items:stretch;gap:0;margin-top:.15rem;border-radius:8px;overflow:hidden;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);background:#0000002e;text-decoration:none;color:inherit;max-width:min(100%,22rem)}.link-preview-card:hover{background:#0000003d}.link-preview-media{flex:0 0 72px;width:72px;min-height:72px;background:#0003}.link-preview-image{width:100%;height:100%;min-height:72px;object-fit:cover;display:block}.link-preview-body{flex:1;min-width:0;padding:.45rem .55rem;display:flex;flex-direction:column;gap:.2rem;justify-content:center}.link-preview-site-row{display:flex;align-items:center;gap:.35rem;min-width:0}.link-preview-favicon{width:14px;height:14px;border-radius:50%;flex-shrink:0;object-fit:cover;background:#fff}.link-preview-site{display:block;font-size:.72rem;opacity:.75;text-transform:uppercase;letter-spacing:.03em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-preview-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.84rem;font-weight:600;line-height:1.35}.link-preview-desc{margin:0;font-size:.76rem;opacity:.82;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.link-preview-loading{font-size:.76rem;opacity:.65}.global-search-list .global-search-row{display:flex;align-items:flex-start;gap:.45rem;width:100%;text-align:left;padding:.45rem .5rem;border:none;background:transparent;color:inherit;cursor:pointer}.global-search-row:hover{background:#ffffff0f}.global-search-preview{display:block;margin-top:.15rem}.contact-verified-badge{color:#4ade80;font-weight:600}.chat-header-verified,.chat-list-badge-verified{color:#4ade80;font-weight:700}.contact-verify-scanner{width:100%;max-width:280px;margin:.5rem auto;border-radius:10px;overflow:hidden}.contact-verify-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}.vault-gen-row{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;margin:.35rem 0 .5rem}.vault-gen-length input{width:4rem;margin-left:.35rem}.vault-gen-symbols{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem}.bubble.mine .bubble-reply-quote{border-left-color:#00000059;background:#00000014}.chat-header-menu-wrap .chat-context-menu:not(.chat-context-menu-portal){top:calc(100% + 6px);right:0}.chat-context-menu-portal{z-index:10051}.message-content-stack{display:flex;flex-direction:column;max-width:100%}.message-content-stack.mine{align-items:flex-end}.message-content-stack.theirs{align-items:flex-start}.message-reactions{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.1rem;margin-bottom:.35rem;max-width:min(78%,42rem)}.message-reactions.mine{align-self:flex-end;justify-content:flex-end}.message-reactions.theirs{align-self:flex-start;justify-content:flex-start}.message-reaction-chip{display:inline-flex;align-items:center;gap:.2rem;padding:.12rem .45rem;border-radius:999px;background:var(--surface2);border:1px solid var(--border);font-size:.85rem;line-height:1.2}.message-reaction-chip.mine{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 12%,var(--surface2))}.message-reaction-count{font-size:.72rem;opacity:.75}.message-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10050}.message-context-menu{position:fixed;z-index:10051;display:flex;flex-direction:column;align-items:center;gap:.35rem;max-width:calc(100vw - 16px)}.message-reaction-bar{display:flex;align-items:center;gap:.15rem;padding:.35rem .45rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);box-shadow:0 8px 32px #00000073}.message-reaction-bar:after{content:"";position:absolute;bottom:-6px;right:1.25rem;width:12px;height:12px;background:var(--surface);border-right:1px solid var(--border);border-bottom:1px solid var(--border);transform:rotate(45deg);display:none}.message-reaction-btn{width:2rem;height:2rem;border:none;border-radius:999px;background:transparent;font-size:1.15rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}.message-reaction-btn:hover{background:var(--surface2);transform:scale(1.08)}.message-reaction-more{width:1.75rem;height:1.75rem;border:none;border-radius:999px;background:var(--surface2);color:var(--muted);font-size:.85rem;cursor:pointer;margin-left:.1rem}.message-reaction-more:hover{background:var(--border);color:var(--text)}.message-action-menu{min-width:13.5rem;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 32px #00000073;padding:.35rem 0;overflow:hidden}.message-action-item{display:flex;align-items:flex-start;gap:.65rem;width:100%;border:none;background:transparent;color:inherit;text-align:left;padding:.65rem 1rem;font-size:.92rem;font-family:inherit;cursor:pointer}.message-action-item:hover:not(:disabled){background:var(--surface2)}.message-action-item.danger{color:var(--danger);background:transparent}.message-action-item.danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 12%,var(--surface2))}.message-action-item:disabled{opacity:.45;cursor:not-allowed}.message-action-icon{width:1.25rem;text-align:center;flex-shrink:0;line-height:1.35}.message-action-label-wrap{display:flex;flex-direction:column;gap:.1rem;min-width:0}.message-action-hint{font-size:.75rem;color:var(--muted)}.compose-has-reply{flex-wrap:wrap}.compose-reply{display:flex;align-items:stretch;gap:.5rem;width:100%;padding:.45rem .55rem;margin-bottom:.35rem;border-left:3px solid var(--accent);border-radius:8px;background:var(--surface2)}.compose-reply-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.compose-reply-author{font-size:.78rem;font-weight:600;color:var(--accent)}.compose-reply-preview{font-size:.82rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compose-reply-close{border:none;background:transparent;color:var(--muted);font-size:.95rem;cursor:pointer;padding:0 .25rem;align-self:flex-start}.compose-reply-close:hover{color:var(--text)}.message-delete-modal .form-actions{margin-top:1rem}.bubble.mine{align-self:flex-end;background:color-mix(in srgb,var(--accent) 88%,#fff 12%);color:#1a1608;border:none;border-radius:12px 12px 4px}.bubble.theirs{align-self:flex-start;background:color-mix(in srgb,var(--surface2) 94%,#fff 6%);border:none;color:var(--text);border-radius:12px 12px 12px 4px}.bubble time{display:block;font-size:.68rem;opacity:.65;margin-top:.15rem}.bubble-meta{display:inline-flex;align-items:center;justify-content:flex-end;gap:.2rem;float:right;clear:both;margin:.15rem 0 0 .55rem;line-height:1.2;user-select:none;-webkit-user-select:none;white-space:nowrap}.bubble-meta time{display:inline;margin-top:0;font-size:.68rem;line-height:1.2}.msg-status{font-size:.78rem;line-height:1;letter-spacing:-.12em;opacity:.72;-webkit-user-select:none;user-select:none}.msg-status-pending{opacity:.45}.msg-status-read{opacity:1;color:#7dd3fc;letter-spacing:-.18em}.bubble.mine .msg-status-read{color:#1e3a5f}.compose{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border-top:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}.compose-row{display:flex;align-items:flex-end;gap:.5rem;width:100%}.compose-input-wrap{flex:1;min-width:0;display:flex;align-items:flex-end;gap:.5rem;padding:.35rem .5rem;border-radius:10px;border:2px solid #4a5568;background-color:#1a1f2e}.compose-has-draft .compose-input-wrap{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-muted)}.compose-input-wrap input,.compose-input-wrap textarea{flex:1;min-width:0;margin:0!important;border:none!important;background:transparent!important;padding:.35rem .25rem!important;min-height:36px!important;max-height:160px;resize:none;line-height:1.45;white-space:pre-wrap;overflow-y:auto;field-sizing:content}.compose-draft{position:relative;flex-shrink:0}.compose-draft-thumb{width:52px;height:52px;object-fit:cover;border-radius:8px;display:block;background:#00000040}.compose-draft-file{display:grid;place-items:center;width:52px;height:52px;border-radius:8px;background:#ffffff14;font-size:1.35rem}.compose-draft-remove{position:absolute;top:-7px;right:-7px;width:22px;height:22px;padding:0;border:none;border-radius:50%;background:#000000d9;color:#fff;font-size:.72rem;line-height:1;cursor:pointer}.compose-draft-hint{margin:0;padding:0 .25rem;font-size:.78rem;color:var(--muted)}.compose-send-draft{background:var(--accent)!important;color:#111!important;font-weight:600}.attachment-media{margin:.25rem 0;contain:layout style paint}.attachment-image{max-width:100%;max-height:min(85vh,960px);width:auto;height:auto;object-fit:contain;border-radius:8px;display:block;background:#00000026;min-height:48px}.attachment-image-placeholder{min-height:120px;min-width:160px;max-width:100%;display:grid;place-items:center;padding:1rem;border-radius:8px;background:#ffffff0f;color:var(--muted);font-size:.85rem;text-align:center}.compose-pending{display:flex;align-items:center;gap:.75rem;padding:.65rem .75rem;border-radius:10px;border:1px solid var(--glass-border);background:#ffffff0a}.compose-pending-thumb{width:56px;height:56px;object-fit:cover;border-radius:8px;flex-shrink:0;background:#000}.compose-pending-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem;font-size:.82rem}.compose-pending-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compose-pending-remove{flex-shrink:0;width:2rem;height:2rem;border:none;border-radius:8px;background:#ffffff14;color:inherit;cursor:pointer}.media-lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:#000000e0;display:flex;align-items:center;justify-content:center;padding:1rem}.media-lightbox{max-width:min(96vw,1200px);max-height:96vh;display:flex;flex-direction:column;gap:.75rem}.media-lightbox-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;color:#fff}.media-lightbox-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.media-lightbox-actions{display:flex;gap:.5rem;flex-shrink:0}.media-lightbox-actions button{padding:.35rem .75rem;border-radius:6px;border:1px solid rgba(255,255,255,.25);background:#ffffff1a;color:#fff;cursor:pointer}.media-lightbox-close{min-width:2rem}.media-lightbox-img{max-width:100%;max-height:calc(96vh - 3rem);object-fit:contain;border-radius:8px;margin:0 auto}.compose-tools{display:flex;gap:.25rem;flex-shrink:0;align-items:center}.compose-emoji-wrap{position:relative}.compose-emoji-picker{position:absolute;bottom:calc(100% + 8px);left:0;z-index:120;display:grid;grid-template-columns:repeat(8,2rem);gap:.2rem;padding:.45rem;border-radius:12px;background:var(--surface);border:1px solid var(--border);box-shadow:0 8px 32px #00000073}.compose-emoji-btn{width:2rem;height:2rem;border:none;border-radius:8px;background:transparent;font-size:1.15rem;line-height:1;cursor:pointer;padding:0}.compose-emoji-btn:hover{background:var(--surface2)}.icon-btn.active{background:color-mix(in srgb,var(--accent) 18%,var(--surface2))}.icon-btn{width:2.25rem;height:2.25rem;padding:0;display:grid;place-items:center;background:var(--surface2);border-radius:8px;font-size:1rem;line-height:1}.icon-btn:hover:not(:disabled){background:var(--border)}.icon-btn.recording{background:#e74c3c;animation:pulse-rec 1s ease-in-out infinite}@keyframes pulse-rec{50%{opacity:.7}}.hidden-file-input{display:none}.compose input[type=text],.compose input:not([type]){flex:1;margin:0;min-width:0}.compose-input-wrap input[type=text],.compose-input-wrap input:not([type]){flex:1}.bubble.has-attachment{max-width:min(92%,640px)}.bubble.bubble-photo{padding:.2rem;max-width:min(92%,420px);width:fit-content;overflow:hidden}.bubble.bubble-photo .bubble-body{position:relative;display:flex;flex-direction:column;gap:0}.bubble.bubble-album{padding:.2rem;max-width:min(92%,420px)}.bubble.bubble-photo .group-sender-name{padding:.35rem .45rem 0}.bubble.bubble-photo .attachment-caption{margin:.35rem .45rem .15rem;font-size:.9375rem}.bubble-meta-overlay{position:absolute;right:.35rem;bottom:.3rem;z-index:2;margin:0!important;padding:.12rem .45rem;border-radius:8px;background:#0000007a;color:#f8fafc!important;font-size:.68rem;line-height:1.25;pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.35)}.bubble.bubble-photo.mine .bubble-meta-overlay .msg-status-read{color:#bfdbfe}.bubble.bubble-photo.mine .bubble-meta-overlay .bubble-edited{color:#ffffffd9}.image-album{display:grid;gap:2px;width:min(360px,82vw);border-radius:10px;overflow:hidden}.image-album--2{grid-template-columns:1fr 1fr;grid-auto-rows:minmax(130px,1fr)}.image-album--3{grid-template-columns:1fr 1fr;grid-template-rows:minmax(150px,1.1fr) minmax(110px,.9fr)}.image-album--3 .image-album-cell:first-child{grid-column:1 / -1}.image-album--4{grid-template-columns:1fr 1fr;grid-auto-rows:minmax(120px,1fr)}.image-album-cell{min-width:0;min-height:0;overflow:hidden;background:#0003}.attachment-media-photo{margin:0}.attachment-media-tile{margin:0;width:100%;height:100%}.attachment-image-btn-photo{display:block;width:100%;line-height:0}.attachment-image-photo{display:block;width:auto;max-width:min(360px,82vw);max-height:min(72vh,520px);height:auto;object-fit:contain;border-radius:10px;min-height:unset;background:#0000001f}.attachment-media-tile .attachment-image-btn-photo,.attachment-media-tile .attachment-image-btn{width:100%;height:100%;min-height:100%;border-radius:0}.attachment-media-tile .attachment-image-photo,.attachment-media-tile .attachment-image{width:100%;height:100%;max-width:none;max-height:none;min-height:100%;object-fit:cover;border-radius:0}.attachment-media-tile .attachment-image-placeholder{width:100%;height:100%;min-height:100px;border-radius:0}.attachment-label{display:block;font-size:.85rem;opacity:.85;margin-bottom:.35rem}.attachment-image-btn{display:block;padding:0;margin:0;border:none;background:transparent;cursor:zoom-in;border-radius:8px;max-width:100%}.attachment-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.45rem}.attachment-action-btn{font-size:.78rem;padding:.28rem .65rem;border-radius:6px;border:1px solid var(--glass-border);background:#ffffff0f;color:inherit;cursor:pointer}.attachment-action-btn:hover{background:#ffffff1f}.file-download-label{word-break:break-all}.attachment-video{max-width:100%;max-height:min(72vh,720px);width:auto;height:auto;object-fit:contain;border-radius:8px;background:#000}.attachment-meta{margin:.35rem 0 0;font-size:.72rem;color:var(--muted)}.attachment-audio{width:100%;min-width:220px}.attachment-file{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.file-download{color:inherit;text-decoration:underline;word-break:break-all}.file-size{font-size:.75rem;opacity:.7}.attachment-caption{margin:.35rem 0 0;font-size:.9rem}.attachment-status,.attachment-error{font-size:.85rem;margin:.25rem 0}.attachment-error{color:#ff7675}.chat-error{padding:0 1rem 1rem;margin:0}.empty{flex:1;display:grid;place-items:center;color:var(--muted)}.vault-credentials,.shares-view{flex:1;padding:1.25rem;overflow-y:auto}.vault-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding:1rem 1.25rem;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--glass-shadow)}.vault-header h2{margin:0;font-size:1.25rem}.inline-form{display:flex;gap:.5rem;margin-bottom:1rem;align-items:stretch}.inline-form input{flex:1;min-width:0;margin:0;color:var(--text);background-color:var(--surface2);border:1px solid var(--border)}.inline-form input:focus{outline:2px solid var(--accent);border-color:var(--accent)}.inline-form button{padding:.65rem .85rem;flex-shrink:0}.vault-header-actions{display:flex;gap:.5rem;flex-wrap:wrap}.vault-header-actions button{font-size:.85rem;padding:.4rem .75rem}.project-list,.vault-projects ul{list-style:none}.vault-projects button{width:100%;text-align:left;background:none;color:var(--text);font-weight:400;padding:.5rem}.vault-projects button.active{background:var(--surface2);border-radius:6px}.cred-form{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius);padding:1rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:.5rem;box-shadow:var(--glass-shadow)}.cred-form input,.cred-form .password-field{margin-top:0}.cred-form .password-field input{margin-top:0;width:100%}.masked-secret{display:contents}.secret-toggle{padding:.15rem .35rem;font-size:.85rem;line-height:1;background:none;color:var(--muted);border-radius:4px}.secret-toggle:hover{background:var(--surface2);color:var(--text)}.secret-toggle.copied{color:var(--success)}.form-actions{display:flex;gap:.5rem}.vault-file-picker{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--muted)}.vault-file-picker input[type=file]{font-size:.85rem;color:var(--text)}.vault-file-selected{font-size:.88rem;color:var(--accent-hover);margin:0}.vault-file-meta{font-size:.78rem;color:var(--muted);white-space:nowrap}.cred-card-file .cred-field-box{flex-wrap:wrap;gap:.35rem .75rem}.cred-list{display:grid;gap:1rem;max-width:520px}.cred-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius);padding:1.15rem 1.25rem;box-shadow:var(--glass-shadow)}.cred-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.cred-card-head strong{font-size:1.05rem;font-weight:600}.cred-delete-btn{padding:.3rem .65rem;font-size:.78rem;font-weight:500;background:transparent;color:var(--muted);border:1px solid var(--border)}.cred-delete-btn:hover{background:#e74c3c1f;color:#ff7675;border-color:#e74c3c59}.cred-field{margin-bottom:.85rem}.cred-field:last-child{margin-bottom:0}.cred-field-label{display:block;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}.cred-field-box{display:flex;align-items:center;gap:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.6rem .75rem;min-height:44px}.cred-field-text{flex:1;min-width:0;font-family:var(--mono);font-size:.92rem;line-height:1.4;word-break:break-all}.cred-field-tools{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.cred-tool-btn{padding:.3rem .55rem;font-size:.72rem;font-weight:600;line-height:1.2;background:var(--accent-muted);color:var(--link);border-radius:6px}.cred-tool-btn:hover{background:#d4a82438;color:var(--link-hover)}.cred-tool-btn.copied{background:#2ecc7126;color:var(--success)}.cred-tool-icon{padding:.35rem .45rem;font-size:.95rem;background:var(--surface2);color:var(--muted)}.cred-tool-icon:hover{background:var(--border);color:var(--text)}.cred-field-notes .notes{margin:0;padding:.6rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;font-size:.88rem;line-height:1.45;color:var(--text)}.cred-row{display:flex;justify-content:space-between;margin-top:.5rem;font-size:.9rem}.cred-row span{color:var(--muted)}.cred-row code{font-family:var(--mono);font-size:.85rem}.cred-actions{display:flex;gap:.5rem;margin-top:.75rem}.cred-actions button{font-size:.85rem;padding:.4rem .75rem}.notes{font-size:.85rem;color:var(--muted);margin-top:.5rem}.confirm-delete-modal .form-actions{margin-top:1rem}.project-unlock-modal label{display:block;margin:1rem 0 .5rem}.project-unlock-modal .form-actions{margin-top:1rem}.confirm-delete-modal strong{color:#fff}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;z-index:100}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;width:90%;max-width:420px;max-height:min(90vh,720px);overflow-y:auto}.modal-wide{max-width:520px}.share-modal-section{margin:1rem 0;padding-top:.75rem;border-top:1px solid var(--border)}.share-modal-section h4{font-size:.95rem;margin-bottom:.5rem}.share-select-actions{display:flex;gap:.75rem;margin:.5rem 0}.share-contact-list{list-style:none;max-height:180px;overflow-y:auto;margin:.5rem 0 .75rem;border:1px solid var(--border);border-radius:var(--radius)}.share-contact-list li{border-bottom:1px solid var(--border)}.share-contact-list li:last-child{border-bottom:none}.share-contact-row{display:flex;align-items:center;gap:.6rem;padding:.55rem .65rem;cursor:pointer}.share-contact-row input{margin:0;width:auto}.share-send-btn{width:100%;margin-top:.25rem}.share-outgoing-list{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.share-outgoing-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.65rem .75rem;background:var(--surface2);border-radius:var(--radius);font-size:.9rem}.share-outgoing-when{display:block;font-size:.75rem;color:var(--muted);margin-top:.2rem}.share-cancel-btn{flex-shrink:0;font-size:.8rem;padding:.25rem .5rem}.vault-outgoing-summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem;padding:.65rem .75rem;background:var(--surface2);border-radius:var(--radius);font-size:.9rem}.share-contact-row.is-disabled{opacity:.55;cursor:not-allowed}.share-contact-note{font-size:.8rem;color:var(--muted)}.settings-danger{border-color:#e74c3c73}.settings-danger input[type=text]{width:100%;margin-top:.35rem}.settings-delete-account-btn{margin-top:.75rem;width:100%}.badge.accepted{color:var(--muted)}.share-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.share-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.badge{font-size:.75rem;padding:.15rem .5rem;border-radius:4px;margin-left:.5rem;background:var(--surface2)}.badge.pending_otp{color:#f39c12}.badge.ready{color:var(--success)}.otp-row{display:flex;gap:.5rem;margin-top:.75rem}.otp-row input{flex:1;margin:0;font-family:var(--mono);letter-spacing:.2em}.pending-shares-banner{background:#d4a8241f;border:1px solid rgba(212,168,36,.45);border-radius:var(--radius);padding:.85rem;margin-bottom:1rem}.pending-shares-banner .hint{margin:.35rem 0 .75rem;font-size:.85rem}.pending-shares-otp span{display:block;font-size:.85rem;margin-bottom:.5rem}.pending-shares-link,.pending-shares-import{display:inline-block;margin-top:.5rem;font-size:.9rem}.pending-shares-import{background:var(--accent);color:#111;border:none;border-radius:var(--radius);padding:.5rem .75rem;font-weight:600}.settings-view{padding:1.25rem;max-width:560px}.settings-section{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem;box-shadow:var(--glass-shadow)}.settings-section h3{font-size:1rem;margin-bottom:.5rem}.settings-section input[type=password],.settings-section input[type=file]{margin:.5rem 0}.settings-section button{margin-top:.5rem}.unlock-progress{text-align:center;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.5}}.bio-btn{width:100%;margin-bottom:1rem;background:var(--surface2);border:1px solid var(--border)}.bio-btn:hover{background:var(--border)}.bio-panel{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin:.75rem 0 1rem;padding:1rem;border-radius:12px;background:var(--surface2);border:1px solid var(--border)}.bio-panel-icon{font-size:2.5rem;line-height:1;display:flex;align-items:center;justify-content:center}.bio-panel-icon-pulse .bio-fingerprint-svg{animation:bio-fingerprint-pulse 1.4s ease-in-out infinite}.bio-fingerprint-svg{width:4rem;height:4rem;color:var(--accent)}@keyframes bio-fingerprint-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.94)}}.bio-panel-sub{text-align:center;margin:0;font-size:.88rem}.bio-use-password{margin-top:.25rem}.project-unlock-overlay{place-items:center}.project-unlock-lead{margin-bottom:.75rem}.project-unlock-bio{margin-bottom:1rem}body.bio-native-active .modal-overlay{background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}body.bio-native-active .project-unlock-overlay.bio-native-pending .project-unlock-modal{opacity:0;pointer-events:none}body.bio-native-active .project-unlock-overlay.bio-native-pending:after{content:"Przyłóż palec — okno systemowe na dole ekranu";position:fixed;top:max(1rem,env(safe-area-inset-top,0));left:50%;transform:translate(-50%);width:min(92%,22rem);padding:.85rem 1rem;border-radius:12px;background:var(--surface);border:1px solid var(--border);box-shadow:0 8px 32px #00000059;font-size:.9rem;text-align:center;z-index:101;pointer-events:none}.project-unlock-modal{width:min(100%,26rem)}.contacts-view{padding:1.25rem;max-width:640px}.invite-form input{margin-bottom:.5rem}.or-divider{text-align:center;margin:.25rem 0}.contact-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.contact-item{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.contact-item:last-child{border-bottom:none}.contact-info{flex:1;min-width:0}.contact-info strong{display:block}.contact-info span{font-size:.85rem;color:var(--muted)}.contact-actions{display:flex;gap:.35rem;flex-shrink:0}.contact-actions button{font-size:.8rem;padding:.35rem .6rem}.chat-link-btn{display:inline-block;font-size:.8rem;padding:.35rem .6rem;background:var(--accent);color:#fff;text-decoration:none;border-radius:8px;font-weight:600}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:700;color:#fff;flex-shrink:0}.avatar.sm{width:32px;height:32px;font-size:.85rem}.avatar.lg{width:56px;height:56px;font-size:1.4rem}.profile-preview{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.profile-preview-lg{padding:1rem;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:var(--radius);border:1px solid var(--glass-border)}.profile-preview-meta{display:flex;flex-direction:column;gap:.2rem}.profile-form{display:flex;flex-direction:column;gap:1.25rem}.profile-form-block{padding-top:.25rem;border-top:1px solid var(--border)}.profile-form-block:first-of-type{border-top:none;padding-top:0}.profile-form-block h4{margin:0 0 .5rem;font-size:.95rem;font-weight:600}.profile-avatar-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.profile-avatar-actions input[type=file]{display:none!important}.profile-save-btn{align-self:flex-start}.input-readonly{opacity:.75;cursor:not-allowed}.profile-meta-row{margin-top:.25rem}.profile-status-label{font-size:.8rem;font-weight:600}.profile-status-label-available{color:var(--success)}.profile-status-label-busy{color:var(--danger)}.profile-status-label-away{color:#f39c12}.profile-status-label-unavailable,.profile-status-label-invisible{color:var(--muted)}.availability-grid{display:flex;flex-direction:column;gap:.5rem}.availability-option{display:flex;align-items:flex-start;gap:.75rem;width:100%;text-align:left;padding:.75rem;background:var(--surface2);border:1px solid var(--border);border-radius:10px;color:var(--text);cursor:pointer}.availability-option.active{border-color:var(--accent);background:var(--accent-muted)}.availability-option-text{display:flex;flex-direction:column;gap:.15rem}.availability-option-text small{color:var(--muted);font-size:.78rem;line-height:1.35}.availability-dot{width:12px;height:12px;border-radius:50%;margin-top:.25rem;flex-shrink:0}.availability-dot-available{background:var(--success)}.availability-dot-busy{background:var(--danger)}.availability-dot-away{background:#f39c12}.availability-dot-unavailable{background:var(--muted)}.availability-dot-invisible{background:transparent;border:2px solid var(--muted)}.user-avatar{position:relative;display:inline-flex;flex-shrink:0}.user-avatar-sm{width:32px;height:32px}.user-avatar-md{width:36px;height:36px}.user-avatar-lg{width:72px;height:72px}.user-avatar-img,.user-avatar-fallback{width:100%;height:100%;border-radius:50%;object-fit:cover;display:grid;place-items:center;font-weight:700;color:#fff}.user-avatar-lg .user-avatar-fallback{font-size:1.6rem}.user-avatar-sm .user-avatar-fallback{font-size:.85rem}.user-avatar-status{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;border:2px solid var(--surface)}.user-avatar-lg .user-avatar-status{width:14px;height:14px;right:2px;bottom:2px}.user-avatar-status-available{background:var(--success)}.user-avatar-status-busy{background:var(--danger)}.user-avatar-status-away{background:#f39c12}.user-avatar-status-unavailable{background:var(--muted)}.contact-status{display:block;font-size:.75rem;font-weight:600}.contact-status-available{color:var(--success)}.contact-status-busy{color:var(--danger)}.contact-status-away{color:#f39c12}.contact-status-unavailable{color:var(--muted)}.chat-header-bio{margin:.15rem 0 0;font-size:.78rem;color:var(--muted);max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.danger-outline{background:transparent;border:1px solid var(--danger);color:var(--danger)}.danger-outline:hover{background:#e74c3c1f}.color-picker{display:flex;gap:.5rem;margin:.5rem 0 1rem}.color-swatch{width:32px;height:32px;border-radius:50%;padding:0;border:2px solid transparent}.color-swatch.active{border-color:#fff;box-shadow:0 0 0 2px var(--accent)}.chat-sidebar-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.chat-sidebar-head h2{margin:0;font-size:1rem;font-weight:600}.btn-invite-sm{display:inline-flex;align-items:center;gap:.25rem;padding:.35rem .65rem;font-size:.78rem;font-weight:600;color:var(--bg);background:var(--accent);border-radius:6px;text-decoration:none;white-space:nowrap;flex-shrink:0}.btn-invite-sm:hover{background:var(--accent-hover);color:var(--bg)}.btn-invite-sm span{font-size:.95rem;line-height:1}.text-link{color:var(--link);text-decoration:none;font-size:.9rem;font-weight:500}.text-link:hover{color:var(--link-hover);text-decoration:underline}.empty-sidebar{padding:1rem .25rem}.empty-sidebar-title{font-size:.9rem;color:var(--text);margin-bottom:.35rem;font-weight:500}.empty-sidebar .hint{margin-bottom:.75rem}.chat-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;text-align:center}.empty-state-icon{width:120px;height:auto;color:var(--muted);opacity:.45}.chat-empty-title{color:var(--muted);font-size:1rem;max-width:320px;line-height:1.5}.btn-primary-lg{display:inline-block;padding:.85rem 1.75rem;font-size:1rem;font-weight:600;color:var(--bg);background:var(--accent);border-radius:10px;text-decoration:none;margin-top:.25rem}.btn-primary-lg:hover{background:var(--accent-hover);color:var(--bg)}.checkbox-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;color:var(--text);font-size:.95rem;cursor:pointer}.checkbox-row input{width:auto;margin:0}kbd{display:inline-block;padding:.1rem .35rem;font-size:.75rem;font-family:var(--mono);background:var(--surface2);border:1px solid var(--border);border-radius:4px}.contact-chat-list button{display:flex;align-items:center;gap:.5rem;text-align:left}.chat-list-row{display:flex;align-items:stretch;gap:.15rem;position:relative}.chat-list-open{flex:1;min-width:0}.chat-list-menu-wrap{position:relative;flex-shrink:0;display:flex;align-items:center}.chat-list-menu-btn{width:2rem;height:2rem;border:none;border-radius:8px;background:transparent;color:var(--muted);font-size:1.15rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}.chat-list-menu-btn:hover,.chat-list-menu-btn:focus-visible{background:var(--surface2);color:var(--text)}.chat-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10050}.chat-context-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:10051;min-width:12.5rem;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 32px #00000073;padding:.35rem 0;overflow:hidden}.chat-context-menu-left{right:auto;left:0}.chat-context-menu-item{display:flex;align-items:center;gap:.65rem;width:100%;border:none;background:transparent;color:inherit;text-align:left;padding:.65rem 1rem;font-size:.92rem;font-family:inherit;cursor:pointer}.chat-context-menu-item:hover:not(:disabled){background:var(--surface2)}.chat-context-menu-item.danger{color:var(--danger);background:transparent}.chat-context-menu-item.danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 12%,var(--surface2))}.chat-context-menu-item:disabled{opacity:.45;cursor:not-allowed}.chat-context-menu-icon{width:1.25rem;text-align:center;flex-shrink:0}.chat-header-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.chat-context-menu-has-sub{display:flex;padding:0;overflow:visible}.chat-context-menu-main{min-width:13rem;padding:.35rem 0}.chat-context-menu-sub{min-width:10.5rem;border-left:1px solid var(--border);padding:.35rem 0;background:var(--surface)}.chat-context-menu-sep{height:1px;margin:.25rem 0;background:var(--border)}.chat-context-menu-label{flex:1;min-width:0}.chat-context-menu-chevron{color:var(--muted);font-size:1.05rem;line-height:1;margin-left:.35rem}.chat-context-menu-item.active{background:var(--surface2)}.chat-list-badges{display:inline-flex;gap:.25rem;margin-top:.12rem}.chat-list-badge{font-size:.72rem;line-height:1}.chat-list-unread-dot{width:9px;height:9px;border-radius:50%;background:var(--accent-hover);flex-shrink:0;margin-left:auto}.chat-list-unread-badge{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#e74c3c;color:#fff;font-size:.72rem;font-weight:700;line-height:20px;text-align:center;flex-shrink:0;margin-left:auto}.chat-tab-unread{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e74c3c;color:#fff;font-size:.65rem;font-weight:700;line-height:18px;text-align:center}.chat-archived-block{margin-top:.5rem;padding-top:.35rem;border-top:1px solid var(--glass-border)}.chat-archived-toggle{width:100%;text-align:left;border:none;background:transparent;color:var(--muted);font-size:.82rem;padding:.45rem .65rem;cursor:pointer;font-family:inherit}.chat-archived-toggle:hover{color:var(--text)}.contact-label{display:flex;flex-direction:column;line-height:1.2}.contact-label small{color:var(--muted);font-size:.75rem}.chat-main header{display:flex;align-items:center;gap:.5rem}.chat-main header small{color:var(--muted);font-weight:400;margin-left:.25rem}@media(max-width:768px){.dashboard{flex-direction:column}.sidebar{width:100%;flex-direction:row;align-items:center;padding:.5rem}.sidebar nav{display:flex;padding:0}.logout-btn,.sidebar-logout{margin:0}}body.platform-native{overscroll-behavior:none;-webkit-tap-highlight-color:transparent}body.platform-android{--tab-bar-height: 56px;--glass-bg: rgba(12, 16, 26, .72);--glass-blur: none;background-image:none;background-attachment:scroll}body.platform-android:before,body.platform-android .app-bg-layer:before{display:none}body.platform-android .main-content,body.platform-android .dashboard,body.platform-android .dashboard-mobile .main-content,body.platform-android .chat-view,body.platform-android .vault-view,body.platform-android .chat-main,body.platform-android .vault-credentials,body.platform-android .messages,body.platform-android .settings-view,body.platform-android .contacts-view,body.platform-android .shares-view{background:transparent!important}body.platform-android .chat-sidebar,body.platform-android .vault-projects{background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}body.platform-android .mobile-tab-bar{background:#0c0e14eb;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}body.platform-android :is(.auth-card,.chat-header,.compose,.vault-header,.cred-form,.cred-card,.settings-section,.share-card,.profile-editor){backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.dashboard-mobile{flex-direction:column;height:100dvh;max-height:100dvh;min-height:100dvh;overflow:hidden;padding-top:var(--safe-top)}.dashboard-mobile .main-content{flex:1;min-height:0;overflow:hidden;padding-bottom:calc(var(--tab-bar-height) + var(--safe-bottom));background:transparent}.mobile-tab-bar{position:fixed;left:0;right:0;bottom:0;z-index:200;display:flex;align-items:stretch;height:calc(var(--tab-bar-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:#0c0e14f5;border-top:1px solid var(--glass-border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.mobile-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;min-width:0;padding:.35rem .25rem;text-decoration:none;color:var(--muted);font-size:.65rem;font-weight:500;transition:color .15s}.mobile-tab-icon{position:relative;font-size:1.25rem;line-height:1}.mobile-tab-badge{position:absolute;top:-4px;right:-8px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#e74c3c;color:#fff;font-size:.6rem;font-weight:700;line-height:16px;text-align:center}.mobile-tab.active{color:var(--accent)}.mobile-tab.active .mobile-tab-icon{transform:scale(1.05)}.platform-android .chat-view,.platform-android .vault-view{height:100%;min-height:0}.platform-android .chat-sidebar,.platform-android .vault-projects{width:100%;max-width:none;flex:1;min-height:0;border-right:none}.platform-android .chat-main,.platform-android .vault-credentials{display:none;flex:1;flex-direction:column;min-height:0;width:100%;overflow:hidden}.platform-android .vault-credentials{padding:.75rem}.platform-android .chat-has-active .chat-sidebar,.platform-android .vault-has-active .vault-projects{display:none}.platform-android .chat-has-active .chat-main,.platform-android .vault-has-active .vault-credentials{display:flex}.platform-android .vault-has-active .vault-credentials{overflow-y:auto;-webkit-overflow-scrolling:touch}.platform-android .vault-credentials .empty{flex:1;display:flex;align-items:center;justify-content:center}.chat-back-btn{flex-shrink:0;width:40px;height:40px;margin-right:.25rem;border:none;border-radius:50%;background:var(--surface2);color:var(--text);font-size:1.15rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.chat-back-btn:active{background:var(--border)}.platform-android .chat-header{padding:.65rem .75rem;flex-shrink:0}.platform-android .chat-header-info{flex:1;min-width:0}.platform-android .vault-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.5rem;flex-shrink:0;padding:.75rem;margin-bottom:.5rem;position:sticky;top:0;z-index:2}.platform-android .vault-header h2{flex:1;min-width:0;margin:0;font-size:1.05rem;line-height:1.3}.platform-android .vault-header-actions{flex:1 1 100%;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.platform-android .vault-header-actions button{width:100%;margin:0;font-size:.78rem;padding:.55rem .45rem;line-height:1.25;white-space:normal;text-align:center}.platform-android .messages{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.platform-android .compose{flex-shrink:0;padding-bottom:max(.5rem,var(--safe-bottom));z-index:20;background:var(--glass-bg);border-top:1px solid var(--glass-border)}body.mobile-chat-active .mobile-tab-bar{display:none}body.mobile-chat-active .dashboard-mobile .main-content{padding-bottom:var(--safe-bottom)}body.platform-android.mobile-chat-active.keyboard-open .dashboard-mobile{height:var(--viewport-height, 100dvh);max-height:var(--viewport-height, 100dvh);min-height:var(--viewport-height, 100dvh)}body.platform-android.mobile-chat-active .chat-view,body.platform-android.mobile-chat-active .chat-main{height:100%;max-height:100%}.attach-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;background:#0000008c;display:flex;align-items:flex-end;justify-content:center;padding:1rem;padding-bottom:max(1rem,calc(var(--safe-bottom) + .5rem))}.attach-menu{width:min(100%,420px);background:#121620fa;border:1px solid var(--glass-border);border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:.5rem}.attach-menu h3{margin:0 0 .25rem;font-size:.95rem;color:var(--muted);font-weight:500}.attach-menu-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.85rem 1rem;border:1px solid var(--glass-border);border-radius:10px;background:#ffffff0a;color:inherit;font-size:1rem;cursor:pointer;text-align:left}.attach-menu-item span:first-child{font-size:1.25rem;width:1.5rem;text-align:center}.attach-menu-cancel{margin-top:.25rem;padding:.75rem;border:none;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer;font-size:.95rem}.platform-android .settings-view,.platform-android .contacts-view,.platform-android .shares-view{height:100%;max-width:none;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:1rem 1rem 1.5rem}.platform-android .auth-page{min-height:100dvh;padding:calc(1.25rem + var(--safe-top)) 1rem calc(1.25rem + var(--safe-bottom));background:transparent}.platform-android .loading{min-height:100dvh;background:transparent}.settings-logout-btn{width:100%;margin-top:.25rem}.platform-android .dashboard-mobile .sidebar{display:none}body.platform-desktop{--surface: #1e2c3a;--surface2: #242f3d;overflow:hidden;background-image:none}body.platform-desktop:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;pointer-events:none;background-color:var(--bg);background-image:var(--app-bg-image);background-size:cover;background-position:center}body.platform-desktop #root{height:100vh;overflow:hidden}body.platform-desktop .dashboard{height:100vh;min-height:100vh;max-height:100vh;background:transparent}body.platform-desktop .dashboard.app-bg-layer:before{z-index:0}body.platform-desktop .sidebar{width:260px;background:var(--glass-bg);border-right:1px solid var(--glass-border);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}body.platform-desktop .main-content{background:transparent;min-height:0;display:flex;flex-direction:column}body.platform-desktop .main-content>.settings-view,body.platform-desktop .main-content>.contacts-view,body.platform-desktop .main-content>.shares-view{flex:1;min-height:0;overflow-y:auto;padding-bottom:2rem}body.platform-desktop .chat-view,body.platform-desktop .vault-view{height:100%;min-height:0;background:transparent}body.platform-desktop .chat-sidebar,body.platform-desktop .vault-projects{background:var(--glass-bg);border-right:1px solid var(--glass-border);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}body.platform-desktop .chat-main,body.platform-desktop .vault-credentials,body.platform-desktop .settings-view,body.platform-desktop .contacts-view,body.platform-desktop .shares-view{background:transparent}body.platform-desktop .message-row{width:100%;align-self:stretch}body.platform-desktop .message-row.mine,body.platform-desktop .message-row.theirs{align-self:stretch;align-items:stretch}body.platform-desktop .message-row-body{display:block;width:100%;max-width:100%;min-width:0}body.platform-desktop .message-row.selecting .message-row-body{flex:1;min-width:0}body.platform-desktop .message-row.theirs .message-row-body{align-items:unset;text-align:left}body.platform-desktop .message-row.mine .message-row-body{align-items:unset;text-align:right}body.platform-desktop .message-row.selecting.mine .message-row-body,body.platform-desktop .message-row.selecting.theirs .message-row-body{align-items:unset}body.platform-desktop .bubble.bubble-photo{max-width:min(88%,400px)}body.platform-desktop .image-album{width:min(360px,78vw)}body.platform-desktop .bubble{display:inline-block;width:auto;max-width:min(88%,30rem);text-align:left;vertical-align:top}body.platform-desktop .bubble.mine,body.platform-desktop .bubble.theirs{align-self:auto}body.platform-desktop .bubble time{display:inline;margin-top:0}body.platform-desktop .message-content-stack{display:inline-flex;vertical-align:top;max-width:min(88%,30rem)}body.platform-desktop .chat-link{overflow-wrap:anywhere;word-break:break-all}body.platform-desktop .auth-page,body.platform-desktop .loading{min-height:100vh;background:transparent}body.platform-desktop .auth-card{background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.key-restore-tabs{display:flex;gap:.5rem;margin:1rem 0}.key-restore-tabs button{flex:1;background:var(--surface2);border-radius:8px;padding:.5rem;font-size:.9rem}.key-restore-tabs button.active{background:var(--accent);color:#111}.key-reset-btn{width:100%;margin-top:.75rem}body.platform-desktop .sidebar nav a.active{background:#2b5278;border-right:none;border-radius:8px;margin:0 .5rem}body.platform-desktop .sidebar nav a{margin:.15rem .5rem;border-radius:8px}body.platform-desktop .sidebar nav a:hover{background:#1e2c3a}.landing-page{min-height:100vh;color:var(--text)}.landing-wrap{max-width:960px;margin:0 auto;padding:2rem 1.25rem 3rem}.landing-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:2.5rem;flex-wrap:wrap}.landing-brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--text)}.landing-brand img{width:48px;height:48px;object-fit:contain;object-position:center;flex-shrink:0}.landing-brand strong{font-size:1.35rem}.landing-nav{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.landing-nav-link{color:var(--accent);text-decoration:none;font-weight:600;font-size:.95rem}.landing-nav-link:hover{color:var(--accent-hover)}.landing-nav-btn{display:inline-flex;align-items:center;padding:.55rem 1rem;border-radius:10px;background:var(--accent);color:#0f1117;text-decoration:none;font-weight:600;font-size:.9rem}.landing-nav-btn:hover{background:var(--accent-hover)}.landing-hero{text-align:center;margin-bottom:2.5rem}.landing-version{display:inline-block;padding:.35rem .85rem;border-radius:999px;background:#d4a82426;border:1px solid rgba(212,168,36,.35);color:var(--accent-hover);font-size:.85rem;font-weight:600;margin-bottom:1rem}.landing-hero h1{font-size:clamp(1.75rem,4vw,2.35rem);margin-bottom:.75rem}.landing-hero p{color:var(--muted);font-size:1.05rem;max-width:540px;margin:0 auto;line-height:1.55}.landing-downloads{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;margin-bottom:2rem}.landing-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px) saturate(1.2);backdrop-filter:blur(20px) saturate(1.2);border:1px solid var(--border);border-radius:14px;padding:1.75rem;display:flex;flex-direction:column;gap:.65rem;box-shadow:0 12px 40px #00000040}.landing-platform-logo{width:56px;height:56px;object-fit:contain}.landing-card h2{font-size:1.2rem}.landing-platform-label{color:var(--muted);font-size:.9rem}.landing-platform-hint{color:var(--muted);font-size:.82rem;line-height:1.45;flex:1}.landing-status{font-size:.78rem;font-weight:600}.landing-status.ok{color:#2ecc71}.landing-status.wait{color:var(--muted)}.landing-btn{display:inline-flex;align-items:center;justify-content:center;padding:.85rem 1.25rem;border-radius:10px;font-weight:600;font-size:.95rem;text-decoration:none;transition:transform .15s,background .15s}.landing-btn-primary{background:var(--accent);color:#0f1117}.landing-btn-primary:hover{background:var(--accent-hover)}.landing-btn-primary.disabled{background:#d4a82459;color:#0f111799;pointer-events:none}.landing-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.landing-feature{background:#1a1d2773;border:1px solid var(--border);border-radius:12px;padding:1rem 1.1rem}.landing-feature strong{display:block;margin-bottom:.35rem;font-size:.92rem}.landing-feature span{color:var(--muted);font-size:.82rem;line-height:1.4}.landing-steps{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:14px;padding:1.5rem;margin-bottom:2rem}.landing-steps h3{font-size:1rem;margin-bottom:1rem}.landing-steps ol{padding-left:1.25rem;color:var(--muted);font-size:.9rem;line-height:1.65}.landing-steps a{color:var(--accent)}.landing-footer{text-align:center;color:var(--muted);font-size:.8rem;padding-top:1rem;border-top:1px solid var(--border)}.landing-footer a{color:var(--accent);text-decoration:none}.landing-footer a:hover{color:var(--accent-hover)}.landing-about-teaser p{color:var(--muted);font-size:.92rem;line-height:1.65;margin-bottom:.75rem}.landing-about-teaser p strong{color:var(--text)}.landing-about-teaser-link{margin-bottom:0!important}.landing-about-teaser-link a{color:var(--accent);font-weight:600;text-decoration:none}.landing-about-teaser-link a:hover{color:var(--accent-hover)}.legal-updated{color:var(--muted);font-size:.9rem;margin-top:.5rem}.legal-lang-picker{display:flex;align-items:center;justify-content:center;gap:.65rem;margin-top:1.25rem;font-size:.88rem;color:var(--muted)}.legal-lang-picker select{background:var(--glass-bg);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:.4rem .65rem;font:inherit}.landing-legal .legal-section p{color:var(--muted);font-size:.92rem;line-height:1.65;margin-bottom:.75rem}.landing-site-footer{margin-top:2.5rem;padding-top:0;border-top:none}.landing-site-footer-inner{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:14px;padding:1.35rem 1.5rem;display:flex;flex-direction:column;gap:1rem;text-align:center}.landing-site-footer-brand{display:flex;flex-direction:column;gap:.35rem}.landing-site-footer-brand strong{font-size:1.05rem}.landing-site-footer-tagline{color:var(--muted);font-size:.82rem;line-height:1.45}.landing-site-footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem 1.25rem}.landing-site-footer-nav a{color:var(--accent);text-decoration:none;font-size:.88rem;font-weight:600}.landing-site-footer-nav a:hover{color:var(--accent-hover)}.landing-site-footer-credit{margin:0;padding-top:.75rem;border-top:1px solid var(--border);color:var(--muted);font-size:.82rem}.landing-site-footer-credit a{color:var(--accent-hover);text-decoration:none;font-weight:600}.landing-site-footer-credit a:hover{text-decoration:underline}.landing-btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.landing-btn-ghost:hover{border-color:var(--accent);color:var(--accent-hover)}.landing-about-hero{text-align:left;margin-bottom:2rem}.landing-about-hero p{margin:0;max-width:none;text-align:left;line-height:1.65}.landing-about-section{margin-bottom:2.25rem}.landing-about-section h2{font-size:1.35rem;margin-bottom:.85rem}.landing-about-section>p{color:var(--muted);line-height:1.65;margin-bottom:1rem}.landing-about-list{padding-left:1.35rem;color:var(--muted);line-height:1.7;margin-bottom:1.25rem}.landing-about-list li{margin-bottom:.5rem}.landing-about-list code,.landing-about-tech code,.landing-about-card code{font-size:.88em;background:#ffffff0f;padding:.1em .35em;border-radius:4px}.landing-about-callout{border-radius:12px;padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:.4rem}.landing-about-callout-secure{background:#2ecc711a;border:1px solid rgba(46,204,113,.35)}.landing-about-callout strong{color:#6ee7a0;font-size:1rem}.landing-about-callout span{color:var(--muted);font-size:.9rem;line-height:1.55}.landing-about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem}.landing-about-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:14px;padding:1.35rem}.landing-about-card h3{font-size:1.05rem;margin-bottom:.75rem}.landing-about-card ul{padding-left:1.15rem;color:var(--muted);font-size:.9rem;line-height:1.6}.landing-about-card li{margin-bottom:.35rem}.landing-about-card-no{border-color:#2ecc7140}.landing-about-card-no h3{color:#6ee7a0}.landing-about-card-meta h3{color:var(--accent-hover)}.landing-about-note{margin-top:.85rem;font-size:.82rem;color:var(--muted);line-height:1.5;font-style:italic}.landing-about-features{margin-bottom:0}.landing-about-stack{display:flex;flex-direction:column;gap:1.25rem}.landing-about-stack article{background:#1a1d2773;border:1px solid var(--border);border-radius:12px;padding:1.15rem 1.25rem}.landing-about-stack h3{font-size:1rem;margin-bottom:.5rem}.landing-about-stack p{color:var(--muted);font-size:.9rem;line-height:1.6;margin:0}.landing-about-tech{font-size:.88rem;color:var(--muted);line-height:1.6}.landing-about-cta{text-align:center;background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:14px;padding:2rem 1.5rem;margin-bottom:2rem}.landing-about-cta h2{font-size:1.35rem;margin-bottom:.5rem}.landing-about-cta p{color:var(--muted);margin-bottom:1.25rem}.landing-about-cta-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}@media(max-width:520px){.landing-wrap{padding-top:1.25rem}.landing-header{margin-bottom:1.5rem}}.chat-sidebar-tabs{display:flex;gap:.35rem;margin:.65rem .5rem 0;padding:.2rem;background:var(--surface2);border-radius:10px}.chat-sidebar-tabs button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.45rem .5rem;border:none;border-radius:8px;background:transparent;color:var(--muted);font-size:.82rem;font-weight:600;cursor:pointer}.chat-sidebar-tabs button.active{background:var(--glass-bg);color:var(--text);box-shadow:0 1px 4px #0000001f}.chat-tab-count{font-size:.68rem;font-weight:700;opacity:.75;padding:.05rem .35rem;border-radius:999px;background:#ffffff14}.chat-sidebar-section-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:0 0 .35rem .5rem}.chat-sidebar-section-head .chat-sidebar-section-title{margin:0}.contacts-groups-bridge{border:1px dashed var(--glass-border);background:#ffffff05}.contacts-groups-link{display:inline-flex;margin-top:.35rem}.chat-sidebar-actions{display:flex;gap:.35rem;flex-wrap:wrap}.chat-sidebar-section{margin-top:.75rem}.chat-sidebar-section-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .35rem .5rem}.group-item .group-avatar,.group-avatar-lg{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:#6c5ce740;font-size:1rem;flex-shrink:0}.group-avatar-lg{width:2.5rem;height:2.5rem}.group-sender-name{display:block;font-size:.75rem;font-weight:600;color:var(--accent);margin-bottom:.15rem}.group-members-preview{font-size:.78rem;opacity:.85;max-width:28rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;width:min(92vw,440px);max-height:85vh;overflow-y:auto}.modal-card h3{margin-top:0}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.create-group-modal fieldset{border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;margin:.75rem 0}.create-group-modal fieldset ul{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto}.group-member-option{display:flex;align-items:center;gap:.6rem;padding:.4rem 0;cursor:pointer}.group-member-option small{display:block;color:var(--muted)}.group-avatar-img{object-fit:cover;background:#6c5ce740}.group-avatar-edit{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem}.group-avatar-preview{width:4rem;height:4rem;border-radius:50%;object-fit:cover}.group-settings-block{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.btn-secondary-sm{font-size:.85rem;padding:.35rem .75rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:inherit;cursor:pointer}.danger-text{color:#e74c3c}.contact-qr-section{text-align:center}.contact-qr-card{display:flex;flex-direction:column;align-items:center;gap:.5rem}.contact-qr-img{width:220px;height:220px;border-radius:var(--radius);background:#00000040;padding:.5rem}.contact-qr-placeholder{width:220px;height:220px;display:grid;place-items:center;color:var(--muted)}.contact-qr-handle{display:flex;flex-direction:column;gap:.15rem}.contact-qr-handle span{color:var(--muted);font-size:.9rem}.username-input-wrap{display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem}.username-at{font-size:1.1rem;color:var(--accent);font-weight:600;padding-left:.25rem}.username-input{flex:1}.contact-search-results{display:flex;flex-direction:column;gap:.5rem;margin:.5rem 0 .75rem}.contact-preview-card{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem;margin:.5rem 0 .75rem;border:1px solid var(--border);border-radius:var(--radius);background:#00000026}.contact-preview-card strong{display:block}.contact-preview-card span{color:var(--muted);font-size:.85rem}.invite-actions-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.qr-scanner-modal{max-width:min(92vw,480px)}.qr-scanner-overlay{z-index:10060}.qr-scanner-status{margin:0 0 .5rem;text-align:center}.qr-reader{width:100%;min-height:280px;border-radius:var(--radius);overflow:hidden;margin-bottom:.75rem;background:#1a2332;position:relative}.qr-reader[data-status=loading]{background:#1a2332 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24' fill='none' stroke='%23d4a824' stroke-width='2'%3E%3Cpath d='M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83'/%3E%3C/svg%3E") center 40% no-repeat}.qr-reader>div,.qr-reader #qr-shaded-region{width:100%!important;height:100%!important;min-height:280px!important}.qr-reader video{display:block!important;width:100%!important;max-width:100%!important;height:100%!important;min-height:280px!important;object-fit:cover;background:#000}.qr-reader img{display:none}.qr-manual-form label{display:block;margin-bottom:.5rem}body.platform-ios{--tab-bar-height: calc(56px + env(safe-area-inset-bottom, 0px)) }body.platform-ios .mobile-tab-bar{padding-bottom:env(safe-area-inset-bottom,0px)}body.platform-ios .main-content,body.platform-ios .dashboard,body.platform-ios .chat-view,body.platform-ios .auth-page{padding-top:env(safe-area-inset-top,0px)}.ios-install-hint{display:flex;align-items:flex-start;gap:.75rem;margin:.65rem .75rem 0;padding:.75rem .85rem;border-radius:12px;border:1px solid rgba(212,168,36,.35);background:#d4a8241f;color:var(--text);font-size:.85rem;line-height:1.45}.ios-install-hint-body strong{display:block;margin-bottom:.25rem;color:var(--accent-hover)}.ios-install-hint-body p{margin:0;color:var(--muted)}.ios-install-hint-close{flex-shrink:0;border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:1rem;line-height:1;padding:.15rem}.platform-ios .ios-install-hint{margin-top:max(.65rem,env(safe-area-inset-top,0px))}.offline-readonly-banner{background:#ffc10726;border:1px solid rgba(255,193,7,.35);color:var(--text);padding:.5rem .75rem;font-size:.85rem;border-radius:8px;margin:.5rem .75rem 0}.update-banner{position:fixed;top:0;left:0;right:0;z-index:10050;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem 1rem;padding-top:max(.65rem,env(safe-area-inset-top,0px));background:linear-gradient(135deg,#d4a824f2,#b48c1cfa);color:#0f1117;box-shadow:0 4px 20px #00000040}.update-banner-text{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.update-banner-text strong{font-size:.92rem}.update-banner-text span{font-size:.8rem;opacity:.9}.update-banner-error{color:#5c1010!important;font-weight:600}.update-banner-actions{display:flex;gap:.5rem;flex-shrink:0}.update-banner-later,.update-banner-install{border:none;border-radius:8px;padding:.45rem .85rem;font-weight:600;font-size:.85rem;cursor:pointer;font-family:inherit}.update-banner-later{background:#0f11171f;color:#0f1117}.update-banner-install{background:#0f1117;color:var(--accent-hover)}.update-banner-install:disabled,.update-banner-later:disabled{opacity:.6;cursor:not-allowed}body.has-update-banner{padding-top:calc(3.25rem + env(safe-area-inset-top,0px))}.safety-number-block{margin:1rem 0;text-align:center}.safety-number{display:block;font-size:.95rem;line-height:1.6;word-break:break-all;margin:.5rem 0;padding:.75rem;background:#ffffff0f;border-radius:8px}.contact-verify-modal{max-width:420px}.contact-verify-qr{text-align:center;margin:1rem 0}.session-list,.recovery-codes-list,.share-audit-list{list-style:none;padding:0;margin:.5rem 0}.session-list li,.share-audit-list li{padding:.35rem 0;border-bottom:1px solid rgba(255,255,255,.06)}.recovery-codes-list{columns:2;gap:.5rem}.audit-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.audit-filters select{min-width:140px}.chat-mention{color:var(--accent, #d4a824);font-weight:600}.chat-mention-known{background:#d4a8241f;border-radius:4px;padding:0 2px}.bubble.mine .chat-mention{color:#0f172a}.bubble.mine .chat-mention-known{background:#0000001a}.bubble.mine time,.bubble.mine .bubble-edited{color:#14110ab8}.bubble-edited{margin-left:.35rem;font-size:.72rem;opacity:.65;font-style:italic}.mention-suggest{position:absolute;left:0;right:0;bottom:calc(100% + 4px);margin:0;padding:.25rem 0;list-style:none;background:var(--surface-elevated, #1a1a22);border:1px solid rgba(255,255,255,.08);border-radius:10px;max-height:220px;overflow:auto;z-index:20;box-shadow:0 8px 24px #00000059}.mention-suggest button{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:.45rem .75rem;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer}.mention-suggest button:hover{background:#ffffff0f}.mention-suggest button span{font-size:.82rem;opacity:.7}.compose-input-wrap{position:relative}.edit-message-modal{max-width:420px}.edit-message-input{width:100%;min-height:96px;margin:.75rem 0;resize:vertical}.vault-share-chat-modal{max-width:480px}.vault-share-preview{white-space:pre-wrap;font-size:.85rem;background:#00000040;border-radius:8px;padding:.75rem;max-height:160px;overflow:auto}.vault-share-tabs{display:flex;gap:.5rem;margin:.75rem 0 .5rem}.vault-share-tabs button{flex:1;padding:.4rem;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:transparent;color:inherit;cursor:pointer}.vault-share-tabs button.active{background:#d4a82426;border-color:#d4a82459}.vault-share-search{width:100%;margin-bottom:.5rem}.vault-share-list{list-style:none;margin:0;padding:0;max-height:220px;overflow:auto}.vault-share-row{display:flex;align-items:center;gap:.65rem;width:100%;padding:.55rem .65rem;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer;border-radius:8px}.vault-share-row.selected,.vault-share-row:hover{background:#ffffff0f}.vault-share-row strong{display:block}.vault-share-group-icon{font-size:1.4rem;width:36px;text-align:center}.cred-card-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.danger-outline{border-color:#dc505080}
