:root{--bg: #f7f3ee;--surface: #fffaf3;--cream: #f0e6d6;--ink: #2c2520;--ink2: #5b4f47;--ink3: #9c8d83;--rule: rgba(44, 37, 32, .08);--rule-soft: rgba(44, 37, 32, .04);--rule-strong: rgba(44, 37, 32, .14);--sage: #8aa890;--sage-deep: #5d7a64;--sage-tint: #dee8e0;--plum: #9d6b8e;--plum-tint: #ead8e2;--apricot: #e8a978;--danger: #c46b6b;--danger-deep: #a85959;--ink-rgb: 44, 37, 32;--sage-rgb: 138, 168, 144;--sage-deep-rgb: 93, 122, 100;--plum-rgb: 157, 107, 142;--danger-rgb: 196, 107, 107;--z-popover: 4;--z-picker: 5;--z-menu: 6;--z-toast: 10;--z-panel: 30;--z-overlay: 80;--shadow-soft: 0 22px 60px rgba(44, 37, 32, .1);--shadow-lift: 0 14px 38px rgba(44, 37, 32, .12);--sans: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--serif: "Instrument Serif", "Fraunces", Georgia, serif;color:var(--ink);background:var(--bg);font-family:var(--sans);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg)}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}em{font-family:var(--serif);font-style:italic;font-weight:400}.app-shell{min-height:100svh;display:grid;place-items:center;background:radial-gradient(120% 70% at 50% 0%,rgba(var(--plum-rgb),.14) 0%,transparent 60%),var(--bg);padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}.auth-panel,.workspace{width:min(100%,1040px);background:var(--surface);border:1px solid var(--rule);box-shadow:var(--shadow-soft)}.auth-panel{max-width:460px;min-height:540px;border-radius:38px;padding:42px 36px;display:flex;flex-direction:column;justify-content:center;gap:18px;animation:rise .42s ease-out;background:radial-gradient(120% 70% at 50% 0%,var(--plum-tint) 0%,var(--bg) 60%);border-color:var(--rule)}.brand-mark{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--sage-tint),var(--plum-tint));border:1px solid var(--rule);color:var(--sage-deep);font-family:var(--serif);font-style:italic;font-size:32px}.brand-mark svg{display:none}.brand-mark:after{content:"w";line-height:1}.auth-panel h1{margin:0;font-family:var(--serif);font-weight:400;font-style:normal;letter-spacing:-.02em;font-size:clamp(2.4rem,8vw,3.4rem);line-height:1;color:var(--ink)}.auth-panel h1 em{color:var(--sage-deep)}.auth-panel p{margin:0;color:var(--ink2);font-family:var(--sans);line-height:1.55;max-width:320px;font-size:.95rem}.auth-panel .stack{margin-top:18px}.auth-panel .auth-footer{margin-top:auto;text-align:center;font-family:var(--serif);font-style:italic;font-size:13px;color:var(--ink3);padding-top:18px}.stack{display:grid;gap:12px}input,textarea{width:100%;border:1px solid var(--rule);border-radius:18px;background:var(--surface);color:var(--ink);padding:13px 16px;outline:none;font-family:var(--sans);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}textarea{resize:none;min-height:44px;max-height:140px;border-radius:22px}input:focus,textarea:focus{border-color:var(--sage-deep);box-shadow:0 0 0 4px rgba(var(--sage-deep-rgb),.14)}.pin-input{-webkit-text-security:disc;text-security:disc;letter-spacing:.32em;text-align:center;font-family:var(--serif);font-size:1.4rem;border-radius:22px}.primary,.text-button{border:0;border-radius:999px;min-height:48px;font-family:var(--sans);font-weight:600;font-size:.95rem}.primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--ink);color:var(--surface);padding:0 22px;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}.primary.compact{min-height:38px;padding:0 16px;font-size:.85rem}.primary:hover{background:#1a1612;transform:translateY(-1px)}.primary:disabled,button:disabled{cursor:not-allowed;opacity:.5;transform:none}.text-button{background:transparent;color:var(--ink3);font-family:var(--serif);font-style:italic;font-weight:400;font-size:.9rem}.secondary-action{min-height:44px;border:1px solid var(--rule);border-radius:999px;background:var(--surface);color:var(--ink2);padding:0 18px;font-family:var(--sans);font-weight:500}.danger-action{background:var(--danger);color:var(--surface)}.danger-action:hover{background:var(--danger-deep)}.dialog-layer{position:fixed;inset:0;z-index:var(--z-overlay);display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}.dialog-backdrop{position:absolute;inset:0;border:0;background:rgba(var(--ink-rgb),.32);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.confirm-dialog{position:relative;z-index:1;width:min(100%,400px);display:grid;gap:16px;border:1px solid var(--rule);border-radius:26px;background:var(--surface);box-shadow:var(--shadow-soft);padding:24px;animation:rise .18s ease-out}.dialog-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;color:var(--sage-deep);background:var(--sage-tint)}.dialog-icon.danger{color:var(--danger-deep);background:rgba(var(--danger-rgb),.16)}.confirm-dialog h2{margin:0 0 6px;font-family:var(--serif);font-weight:400;font-size:1.5rem;letter-spacing:-.01em;line-height:1.2}.confirm-dialog p{margin:0;color:var(--ink2);line-height:1.55;font-size:.95rem}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.workspace{height:calc(100svh - 36px);border-radius:38px;display:grid;grid-template-rows:auto auto 1fr auto;overflow:hidden;background:var(--bg)}.chat-workspace{grid-template-rows:auto 1fr auto}.info-workspace{grid-template-rows:auto 1fr}.workspace.narrow{max-width:480px}.app-header{display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:14px 22px;background:transparent}.app-header-title{display:flex;align-items:center;gap:10px;min-width:0}.app-header-title>div{display:grid;gap:0;min-width:0}.app-header span{color:var(--ink3);font-size:.78rem;font-weight:500}.app-header strong{font-family:var(--serif);font-weight:400;font-size:1.55rem;line-height:1.1;letter-spacing:-.01em;color:var(--ink)}.app-header strong em{color:var(--sage-deep)}.chat-header{background:var(--surface);border-bottom:1px solid var(--rule);padding:12px 16px}.chat-header .app-header-title{gap:12px}.chat-header strong{font-family:var(--sans);font-size:1rem;font-weight:600;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-header .chat-header-subtitle{display:block;margin-top:1px;font-family:var(--serif);font-style:italic;font-size:.78rem;color:var(--sage-deep);line-height:1}.header-actions{display:flex;align-items:center;gap:4px}.app-header button,.composer button,.toast button,.invite-code button,.reply-draft button{border:0;background:transparent;color:var(--ink2);border-radius:50%;width:40px;height:40px;display:inline-grid;place-items:center;transition:background .15s ease,transform .15s ease,color .15s ease}.app-header button:hover,.composer button:hover,.invite-code button:hover{background:var(--sage-tint);color:var(--sage-deep)}.app-header .header-cta,.chat-list-toolbar .primary.compact{width:auto}.chat-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 22px 16px;background:transparent}.chat-list-toolbar>div{display:grid;gap:4px;min-width:0}.chat-list-toolbar h2{margin:0;font-family:var(--sans);font-size:.78rem;text-transform:none;font-weight:500;color:var(--ink3);letter-spacing:0}.chat-list-toolbar p{margin:0;font-family:var(--serif);font-style:italic;color:var(--ink2);font-size:.95rem}.chat-list-toolbar .primary.compact{width:42px;height:42px;min-height:42px;border-radius:50%;padding:0;box-shadow:0 4px 14px rgba(var(--ink-rgb),.18)}.chat-list-toolbar .primary.compact span,.chat-list-toolbar .primary.compact>svg+*{display:none}.chat-list{overflow:auto;padding:6px 14px 18px;display:grid;gap:8px;scrollbar-color:rgba(var(--ink-rgb),.18) transparent}.empty-state{min-height:100%;display:grid;place-items:center;align-content:center;gap:14px;padding:30px;text-align:center;color:var(--ink2)}.empty-state svg{width:60px;height:60px;padding:14px;border-radius:50%;background:var(--sage-tint);color:var(--sage-deep)}.empty-state h2{margin:0;font-family:var(--serif);font-weight:400;font-size:1.6rem;letter-spacing:-.01em;color:var(--ink)}.empty-state p{margin:0;max-width:340px;line-height:1.55;color:var(--ink2);font-family:var(--sans)}.empty-state.compact{align-self:center;min-height:42vh;margin:auto}.chat-list-item{width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px;padding:0;background:var(--surface);border:1px solid var(--rule);border-radius:22px;transition:border-color .16s ease,transform .16s ease}.chat-list-item:has(.chat-list-main.has-unread){border-color:var(--sage-deep);border-width:1.5px}.chat-list-main{min-width:0;display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:14px;border:0;background:transparent;color:var(--ink);padding:14px 16px;text-align:left;border-radius:22px;transition:background .15s ease;font-family:var(--sans)}.chat-list-main:hover{background:rgba(var(--ink-rgb),.02)}.icon-button{border:0;background:transparent;color:var(--ink3);border-radius:50%;width:38px;height:38px;display:inline-grid;place-items:center}.icon-button:hover{background:var(--sage-tint);color:var(--sage-deep)}.chat-menu{position:relative;padding-right:8px}.chat-menu-popover{position:absolute;z-index:var(--z-popover);top:42px;right:0;min-width:180px;display:grid;gap:4px;padding:8px;border:1px solid var(--rule);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-lift)}.chat-menu-popover button{display:flex;align-items:center;gap:10px;border:0;border-radius:12px;background:transparent;color:var(--ink);padding:10px 12px;text-align:left;font-family:var(--sans);font-size:.9rem}.chat-menu-popover button:hover{background:var(--sage-tint);color:var(--sage-deep)}.chat-menu-popover .danger{color:var(--danger-deep)}.chat-menu-popover .danger:hover{background:rgba(var(--danger-rgb),.12);color:var(--danger-deep)}.chat-avatar{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--sage-tint),var(--plum-tint));color:var(--ink);font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.2rem;letter-spacing:0;flex-shrink:0}.chat-avatar.large{width:84px;height:84px;font-size:2.2rem}.chat-avatar.photo{object-fit:cover;padding:0}.chat-list-copy{display:grid;gap:3px;min-width:0}.chat-list-copy strong,.chat-list-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--sans)}.chat-list-copy strong{font-size:.95rem;font-weight:600;color:var(--ink)}.chat-list-copy small{font-size:.85rem;color:var(--ink3);font-weight:400}.chat-list-main.has-unread .chat-list-copy small{color:var(--ink2);font-weight:500}.chat-list-meta{display:grid;justify-items:end;gap:6px;min-width:42px}.chat-list-item time{font-size:.72rem;color:var(--ink3);font-family:var(--sans);font-weight:500}.chat-list-main.has-unread time{color:var(--sage-deep);font-weight:700}.unread-badge{min-width:22px;height:22px;display:inline-grid;place-items:center;padding:0 7px;border-radius:999px;background:var(--sage-deep);color:#fff;font-size:.72rem;font-weight:700;line-height:1;font-family:var(--sans)}.chat-title-form{display:grid;grid-template-columns:1fr 38px 38px;gap:8px;align-items:center}.chat-title-form input{min-height:40px;padding:10px 14px;border-radius:14px}.chat-title-form button{border:0;background:var(--sage-tint);color:var(--sage-deep);border-radius:50%;width:38px;height:38px;display:inline-grid;place-items:center}.chat-list-item>.chat-title-form{grid-column:1 / -1;padding:0 14px 14px 70px}.chat-info{min-height:0;overflow:auto;padding:18px;display:grid;align-content:start;gap:14px}.info-section{display:grid;gap:14px;padding:20px;border:1px solid var(--rule);border-radius:26px;background:var(--surface)}.info-section:first-child{grid-template-columns:auto 1fr;align-items:center}.info-section h2{margin:0;font-family:var(--serif);font-weight:400;font-size:1.25rem;letter-spacing:-.01em;color:var(--ink)}.info-title{display:grid;gap:8px}.info-title>span,.muted{color:var(--ink3);font-size:.85rem;font-family:var(--sans)}.info-title .chat-title-form{grid-template-columns:1fr 38px 38px}.participant-list,.file-list{display:grid;gap:8px}.participant-row,.file-list-item{display:flex;align-items:center;gap:12px;min-width:0;color:var(--ink);font-family:var(--sans)}.participant-row>div,.file-list-item span{display:grid;gap:2px;min-width:0}.participant-row strong,.file-list-item strong{font-weight:600;font-size:.95rem}.participant-row small,.file-list-item small{color:var(--ink3);font-size:.82rem}.file-list-item{padding:12px 14px;border-radius:18px;text-decoration:none;background:var(--bg);border:1px solid var(--rule);transition:background .15s ease,transform .15s ease}.file-list-item:hover{background:var(--cream);transform:translateY(-1px)}.file-list-item span{flex:1}.file-list-item span,.file-list-item strong,.participant-row strong,.participant-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.media-grid a,.media-grid button{aspect-ratio:1;overflow:hidden;border-radius:18px;border:0;padding:0;background:transparent;cursor:pointer;background:var(--cream);transition:transform .16s ease}.media-grid a:hover,.media-grid button:hover{transform:translateY(-2px)}.media-grid img{width:100%;height:100%;display:block;object-fit:cover}.danger-zone{background:var(--surface);border-color:rgba(var(--danger-rgb),.18)}.danger-zone .settings-row{border:0;background:transparent;padding:0}.pairing-grid{display:grid;grid-template-columns:1fr;gap:14px;padding:18px 22px 22px}.panel{display:grid;align-content:start;gap:14px;padding:22px;border-radius:26px;border:1px solid var(--rule);background:var(--surface)}.panel h2{margin:0;font-family:var(--serif);font-weight:400;font-size:1.5rem;letter-spacing:-.01em;line-height:1.15;color:var(--ink)}.panel p{margin:0;color:var(--ink2);font-family:var(--sans);line-height:1.5;font-size:.92rem}.panel>svg{width:36px;height:36px;padding:8px;border-radius:50%;background:var(--sage-tint);color:var(--sage-deep)}.invite-code{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px dashed rgba(var(--ink-rgb),.18);border-radius:18px;padding:14px 18px;background:var(--bg)}.invite-code span{font-family:var(--serif);font-size:1.7rem;font-weight:400;letter-spacing:.18em;color:var(--ink)}.message-list{position:relative;overflow:auto;padding:18px 16px 6px;display:flex;flex-direction:column;gap:8px;background:var(--bg);scrollbar-color:rgba(var(--ink-rgb),.18) transparent}.new-messages-jump{justify-self:center;align-self:end;position:sticky;bottom:12px;margin:-44px auto 8px;z-index:var(--z-popover);border:0;border-radius:999px;background:var(--ink);color:var(--surface);padding:10px 18px;box-shadow:var(--shadow-lift);font-family:var(--serif);font-style:italic;font-size:.95rem;animation:jumpIn .18s ease-out}.message-block{display:contents}.e2e-pill{align-self:center;display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;background:var(--plum-tint);color:var(--ink2);font-family:var(--serif);font-style:italic;font-size:.82rem;margin-bottom:4px}.e2e-pill svg{color:var(--plum)}.date-separator{align-self:center;border-radius:999px;background:var(--cream);color:var(--ink2);padding:5px 14px;font-size:.72rem;font-weight:500;font-family:var(--sans);margin:6px 0 2px}.message{position:relative;display:flex;gap:8px;align-items:flex-end;max-width:min(760px,92%);padding-bottom:4px;animation:messageIn .22s cubic-bezier(.2,.8,.2,1)}.message.picker-open{z-index:var(--z-picker);margin-bottom:50px}.message.highlighted .bubble{animation:highlightPulse 1.4s ease-out}.message.pressing{-webkit-user-select:none;user-select:none}.message.pressing .bubble{transform:scale(.97);transition:transform .48s cubic-bezier(.2,.8,.2,1)}.message.own{align-self:flex-end;flex-direction:row-reverse}.message.other{align-self:flex-start}.bubble{border-radius:22px;padding:10px 16px;min-width:60px;background:var(--surface);border:1px solid var(--rule);font-family:var(--sans);font-size:.95rem;line-height:1.4;color:var(--ink)}.own .bubble{background:var(--ink);border-color:transparent;color:var(--surface)}.bubble p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.message-footer{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:4px;padding:0 6px;min-height:12px}.own .message-footer{justify-content:flex-end}.other .message-footer{justify-content:flex-start}.deleted{margin:0;color:var(--ink3);font-family:var(--serif);font-style:italic}.reply-preview,.reply-draft{display:flex;align-items:center;gap:8px;width:100%;border:0;border-left:2px solid var(--plum);border-radius:12px;margin-bottom:6px;padding:6px 10px;color:inherit;background:rgba(var(--plum-rgb),.1);text-align:left;font-family:var(--sans);font-size:.85rem}.own .reply-preview{background:#ffffff1a;border-left-color:#ffffffb3}.reply-draft{background:var(--plum-tint);color:var(--ink2)}.reply-draft.edit-draft{background:var(--sage-tint);border-left-color:var(--sage-deep)}.reaction-picker{display:flex;gap:4px;padding:6px;border:1px solid var(--rule);border-radius:999px;background:var(--surface);box-shadow:var(--shadow-lift);animation:pop .12s ease-out}.message-menu-popover{position:absolute;z-index:var(--z-menu);left:0;top:calc(100% + 8px);display:grid;gap:6px}.message-menu-backdrop,.message-menu-handle{display:none}.own .message-menu-popover{left:auto;right:0}.message-menu-actions{display:grid;gap:2px;min-width:180px;padding:8px;border:1px solid var(--rule);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-lift)}.message-menu-actions button{display:flex;align-items:center;gap:10px;border:0;border-radius:12px;background:transparent;color:var(--ink);padding:10px 12px;text-align:left;font-family:var(--sans);font-size:.9rem}.message-menu-actions button:hover{background:var(--sage-tint);color:var(--sage-deep)}.message-menu-actions .danger{color:var(--danger-deep)}.message-menu-actions .danger:hover{background:rgba(var(--danger-rgb),.12);color:var(--danger-deep)}.reaction-picker button{border:0;border-radius:999px;background:transparent;width:34px;height:34px;font-size:1.2rem;transition:transform .12s ease,background .12s ease;display:inline-grid;place-items:center}.reaction-picker button:hover,.reaction-picker .selected{background:var(--sage-tint);transform:translateY(-2px)}.reaction-picker .emoji-more-button{color:var(--ink2)}.emoji-grid{display:grid;grid-template-columns:repeat(8,34px);gap:4px;width:max-content;max-width:min(100vw - 48px,326px);padding:8px;border:1px solid var(--rule);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-lift);animation:pop .12s ease-out}.emoji-grid button{border:0;border-radius:999px;background:transparent;width:34px;height:34px;font-size:1.2rem;transition:transform .12s ease,background .12s ease}.emoji-grid button:hover,.emoji-grid .selected{background:var(--sage-tint);transform:translateY(-2px)}.reaction-summary{position:absolute;left:14px;bottom:-6px;display:flex;align-items:center;gap:2px;z-index:1}.own .reaction-summary{left:auto;right:14px}.reaction-summary span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:999px;background:var(--surface);border:1.5px solid var(--bg);font-size:.78rem;line-height:1}.metadata{display:flex;align-items:center;gap:4px;font-family:var(--sans);font-size:.66rem;line-height:1;color:var(--ink3);font-weight:500;white-space:nowrap}.message-status{display:inline-flex;align-items:center;line-height:1;color:var(--ink3);flex-shrink:0}.message-status.read{color:var(--sage-deep)}.message-status.failed{color:var(--danger-deep)}.message-actions{display:none}.chat-image{display:block;max-width:min(340px,68vw);max-height:360px;object-fit:cover;border-radius:18px}.chat-image-button{border:0;padding:0;background:transparent;cursor:zoom-in;border-radius:18px;display:block}.lightbox{position:fixed;inset:0;z-index:200;background:#0c0a0eeb;display:flex;flex-direction:column;animation:lightbox-fade .16s ease}@keyframes lightbox-fade{0%{opacity:0}to{opacity:1}}.lightbox-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px max(14px,env(safe-area-inset-top));padding-top:max(14px,env(safe-area-inset-top));color:#ffffffeb}.lightbox-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.lightbox-meta strong{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60vw}.lightbox-meta span{font-size:12px;color:#fff9}.lightbox-actions{display:flex;gap:6px;flex-shrink:0}.lightbox-actions a,.lightbox-actions button{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;border:0;background:#ffffff14;color:#ffffffeb;cursor:pointer;transition:background .16s ease;text-decoration:none}.lightbox-actions a:hover,.lightbox-actions button:hover{background:#ffffff2e}.lightbox-stage{flex:1;display:flex;align-items:center;justify-content:center;position:relative;padding:8px 56px max(20px,env(safe-area-inset-bottom));min-height:0}.lightbox-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:0;background:#ffffff1a;color:#ffffffeb;display:grid;place-items:center;cursor:pointer;transition:background .16s ease}.lightbox-nav:hover{background:#ffffff38}.lightbox-nav.prev{left:12px}.lightbox-nav.next{right:12px}@media(max-width:480px){.lightbox-stage{padding:8px 12px max(20px,env(safe-area-inset-bottom))}.lightbox-nav.prev{left:6px}.lightbox-nav.next{right:6px}.lightbox-nav{width:38px;height:38px;background:#ffffff29}}.file-chip{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-family:var(--sans)}.file-chip span{display:grid;gap:2px}.file-chip small{opacity:.7}.typing{padding:0 22px 8px;color:var(--ink2);font-family:var(--serif);font-style:italic;font-size:.88rem}.upload-progress{height:2px;background:var(--rule)}.upload-progress span{display:block;height:100%;background:var(--sage-deep);transition:width .16s ease}.composer{padding:12px 14px max(14px,env(safe-area-inset-bottom));background:var(--bg)}.composer-row{display:grid;grid-template-columns:40px 40px 1fr 40px;gap:6px;align-items:end;background:var(--surface);border:1px solid var(--rule);border-radius:24px;padding:4px}.composer-row textarea{border:0;background:transparent;padding:9px 8px;min-height:40px;border-radius:0}.composer-row textarea:focus{box-shadow:none}.composer button[type=button]{width:38px;height:38px;border-radius:50%;color:var(--ink2)}.send-button{background:var(--sage-deep)!important;color:#fff!important;width:38px!important;height:38px!important;border-radius:50%!important;border:0;display:inline-grid;place-items:center;transition:background .16s ease}.send-button:disabled{background:var(--surface)!important;color:var(--ink3)!important;border:1px solid var(--rule)}.settings-list{padding:10px 18px 18px;display:grid;align-content:start;gap:10px}.settings-row{width:100%;display:flex;align-items:center;gap:14px;border:1px solid var(--rule);border-radius:22px;background:var(--surface);color:var(--ink);padding:16px 18px;text-align:left;font-family:var(--sans);transition:background .15s ease,transform .15s ease,border-color .15s ease}.settings-row:hover{background:var(--cream);transform:translateY(-1px)}.settings-row svg{color:var(--sage-deep);flex-shrink:0}.settings-row>div{display:grid;gap:2px}.settings-row strong{font-weight:600;font-size:.95rem}.settings-row span{color:var(--ink3);font-size:.85rem}.settings-row.danger{color:var(--danger-deep)}.settings-row.danger svg{color:var(--danger-deep)}.notif-toggle{flex-shrink:0;width:36px;height:20px;border-radius:10px;margin-left:auto;transition:background .2s}.notif-toggle.on{background:var(--accent)}.notif-toggle.off{background:var(--border)}.toast{position:fixed;z-index:var(--z-toast);top:18px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;max-width:min(92vw,620px);padding:12px 18px;border-radius:999px;color:#fff;font-family:var(--sans);font-size:.9rem;box-shadow:var(--shadow-lift)}.toast.error{background:var(--danger-deep)}.toast.success{background:var(--sage-deep)}.toast button{color:#fff;width:32px;height:32px}.toast button:hover{background:#ffffff29}.loading-panel{width:min(86vw,360px);display:grid;justify-items:center;gap:12px;padding:34px;border:1px solid var(--rule);border-radius:26px;background:var(--surface);box-shadow:var(--shadow-soft)}.skeleton{display:block;overflow:hidden;position:relative;background:rgba(var(--ink-rgb),.07)}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.62),transparent);animation:shimmer 1.25s infinite}.skeleton.avatar{width:46px;height:46px;border-radius:50%}.skeleton.avatar.small{width:36px;height:36px}.skeleton.line{width:150px;height:12px;border-radius:999px}.skeleton.line.wide{width:220px}.skeleton.line.short{width:48px}.skeleton-list{display:grid;gap:8px}.skeleton-row{grid-template-columns:46px 1fr auto;padding:14px 16px;background:var(--surface);border:1px solid var(--rule);border-radius:22px;display:grid;gap:14px;align-items:center}.skeleton-copy{display:grid;gap:9px;min-width:0}.message-skeleton{display:grid;gap:14px;padding-top:8px}.bubble-skeleton{width:min(280px,70%);height:56px;border-radius:22px}.bubble-skeleton.short{width:min(190px,58%);height:42px}.bubble-skeleton.own{justify-self:end;background:rgba(var(--ink-rgb),.14)}.bubble-skeleton.other{justify-self:start}.media-skeleton{aspect-ratio:1;border-radius:18px}.inbox-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 22px max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--rule);background:var(--bg);cursor:pointer}.inbox-footer-left{display:flex;align-items:center;gap:8px;font-family:var(--sans);font-size:.78rem;color:var(--ink2)}.inbox-footer-left svg{color:var(--sage-deep)}.inbox-footer-right{font-family:var(--serif);font-style:italic;font-size:.85rem;color:var(--sage-deep)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes pop{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes messageIn{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes jumpIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{to{transform:translate(100%)}}@keyframes highlightPulse{0%{box-shadow:0 0 rgba(var(--sage-deep-rgb),0)}22%{box-shadow:0 0 0 4px rgba(var(--sage-deep-rgb),.32)}to{box-shadow:0 0 rgba(var(--sage-deep-rgb),0)}}@keyframes sheetUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media(max-width:720px){html,body{height:100%;overflow:hidden;overscroll-behavior-y:none;background:var(--bg)}.app-shell{padding:0;align-items:stretch;min-height:100dvh;height:100dvh;overflow:hidden;overscroll-behavior:none;background:var(--bg)}.auth-panel,.workspace{width:100%;min-height:100svh;min-height:100dvh;height:100dvh;border-radius:0;border:0;box-shadow:none}.auth-panel{padding:calc(28px + env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left))}.app-header{padding:env(safe-area-inset-top) max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));padding-top:max(14px,env(safe-area-inset-top))}.chat-list-toolbar{padding:6px max(16px,env(safe-area-inset-right)) 14px max(16px,env(safe-area-inset-left))}.chat-list{padding:6px max(14px,env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.message-list{padding:16px max(14px,env(safe-area-inset-right)) 8px max(14px,env(safe-area-inset-left));overscroll-behavior:contain}.composer{padding:10px max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.pairing-grid{grid-template-columns:1fr;padding:14px max(14px,env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.message{max-width:92%}.message.picker-open{margin-bottom:0}.message-menu-layer{position:fixed;inset:0;z-index:var(--z-panel);display:grid;align-items:end}.message-menu-backdrop{position:absolute;inset:0;display:block;border:0;background:rgba(var(--ink-rgb),.32)}.message-menu-popover,.own .message-menu-popover{position:relative;left:auto;right:auto;top:auto;width:100%;gap:10px;padding:10px 12px calc(12px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;background:var(--surface);box-shadow:0 -18px 46px rgba(var(--ink-rgb),.18);animation:sheetUp .16s ease-out}.message-menu-handle{display:block;justify-self:center;width:42px;height:4px;border-radius:999px;background:var(--rule-strong)}.reaction-picker{justify-content:space-between;box-shadow:none}.emoji-grid{grid-template-columns:repeat(6,minmax(0,1fr));width:100%;max-width:none;max-height:200px;overflow:auto;box-shadow:none}.emoji-grid button{width:100%}.message-menu-actions{box-shadow:none;border:0;padding:0}.message-menu-actions button{min-height:48px;padding:14px;font-size:1rem}.chat-info{padding:14px max(14px,env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.info-section:first-child{grid-template-columns:1fr;justify-items:center;text-align:center}.media-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
