:root{--bg: #0e1116;--panel: #151a21;--panel-2: #1b212a;--line: #262e39;--text: #e6e9ee;--muted: #8d97a6;--accent: #4c8dff;--accent-ink: #ffffff;--accent-soft: #1d3557;--bubble: #1b212a;--danger: #ff6b6b;--ok: #43d17c;--warn: #e8b44a;--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--ease: cubic-bezier(.2, .7, .3, 1);--shadow: 0 8px 28px rgb(0 0 0 / .35)}@media(prefers-color-scheme:light){:root{--bg: #eef1f5;--panel: #ffffff;--panel-2: #f4f6f9;--line: #dfe4ea;--text: #16191d;--muted: #66707d;--accent: #2f6fe4;--accent-ink: #ffffff;--accent-soft: #dbe7ff;--bubble: #ffffff;--danger: #d13b3b;--ok: #1e9e5a;--warn: #b57d10;--shadow: 0 8px 28px rgb(20 30 50 / .12)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none}button,input{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.app{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);height:100dvh}aside{display:grid;grid-template-rows:auto auto 1fr auto;gap:12px;min-height:0;padding:16px;background:var(--panel);border-right:1px solid var(--line)}main{position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr auto;min-width:0;min-height:0}main>header{display:flex;align-items:center;gap:10px;padding:14px 18px;background:var(--panel);border-bottom:1px solid var(--line)}main>header strong{font-size:16px}.back{display:none;font-size:26px;line-height:1;width:40px;height:40px;color:var(--muted);border-radius:var(--r-sm)}.back:hover{background:var(--panel-2);color:var(--text)}.identity{display:flex;flex-direction:column;gap:2px;padding:12px;background:var(--panel-2);border-radius:var(--r-md)}.identity strong{font-size:15px}.identity span{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.conn{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-top:6px;padding:3px 9px;font-size:11px;letter-spacing:.02em;border-radius:999px;transition:background .25s var(--ease),color .25s var(--ease)}.conn:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.conn.live{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}.conn.connecting{color:var(--warn);background:color-mix(in srgb,var(--warn) 16%,transparent)}.conn.connecting:before{animation:pulse 1.1s ease-in-out infinite}.conn.offline{color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,transparent)}@keyframes pulse{50%{opacity:.25}}nav{display:flex;flex-direction:column;gap:4px;min-height:0;overflow-y:auto}.conv{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:10px 12px;text-align:left;border-radius:var(--r-md);transition:background .18s var(--ease)}.conv-body{display:flex;flex:1;flex-direction:column;gap:1px;min-width:0}.conv-top{display:flex;align-items:baseline;gap:8px}.conv-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv-time,.conv-preview{font-size:12px;color:var(--muted)}.conv-preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv.active .conv-preview,.conv.active .conv-time{color:color-mix(in srgb,var(--text) 65%,transparent)}.badge{display:grid;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;color:var(--accent-ink);background:var(--accent);border-radius:999px}.conv:hover{background:var(--panel-2)}.conv.active{background:var(--accent-soft)}.conv-del{display:grid;place-items:center;width:26px;height:26px;font-size:18px;line-height:1;color:var(--muted);border-radius:var(--r-sm);opacity:0;transition:opacity .15s var(--ease),color .15s var(--ease),background .15s var(--ease)}.conv:hover .conv-del,.conv:focus-within .conv-del,.conv-del:focus-visible{opacity:1}.conv-del:hover{color:var(--danger);background:color-mix(in srgb,var(--danger) 15%,transparent)}.empty{display:flex;flex-direction:column;gap:6px;padding:18px 12px;font-size:13px;color:var(--muted)}.empty strong{color:var(--text)}.error{padding:10px 12px;font-size:13px;color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent);border-radius:var(--r-sm);overflow-wrap:anywhere}.messages{display:flex;flex-direction:column;gap:2px;min-height:0;padding:18px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.day{display:flex;align-items:center;gap:12px;margin:18px 0 10px;font-size:11px;color:var(--muted)}.day:before,.day:after{content:"";flex:1;height:1px;background:var(--line)}.row{display:flex;align-items:flex-end;gap:8px;max-width:min(76%,560px);animation:rise .22s var(--ease) both}.row.run-start{margin-top:10px}.row.me{align-self:flex-end;flex-direction:row-reverse}.row.them{align-self:flex-start}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.who{flex:0 0 auto;width:26px}.bubble{display:flex;flex-direction:column;gap:2px;min-width:0;max-width:100%}.msg{padding:9px 13px;border-radius:var(--r-lg);overflow-wrap:anywhere}.msg.me{background:var(--accent);color:var(--accent-ink)}.msg.them{background:var(--bubble);border:1px solid var(--line)}.row.me.run-end .msg{border-bottom-right-radius:var(--r-sm)}.row.them.run-end .msg{border-bottom-left-radius:var(--r-sm)}.meta{display:flex;align-items:center;gap:6px;padding:0 4px;font-size:11px;color:var(--muted)}.row.me .meta{justify-content:flex-end}.time{font-variant-numeric:tabular-nums}.msg.bare{padding:0;background:none;border:0}.removed{color:var(--muted);font-size:13px}.msg.me .removed{color:color-mix(in srgb,var(--accent-ink) 75%,transparent)}.msg-actions{display:flex;gap:6px;padding:0 4px;height:17px;opacity:0;transition:opacity .15s var(--ease)}.row.me .msg-actions{justify-content:flex-end}.bubble:hover .msg-actions,.bubble:focus-within .msg-actions{opacity:1}.msg-actions button{font-size:11px;color:var(--muted);transition:color .15s var(--ease)}.msg-actions button:hover{color:var(--text);text-decoration:underline}.msg-actions button:last-child:nth-child(2):hover{color:var(--danger)}.tick.read{color:var(--accent)}.msg.typing{display:inline-flex;gap:4px;padding:13px}.msg.typing span{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:bounce 1.1s var(--ease) infinite}.msg.typing span:nth-child(2){animation-delay:.15s}.msg.typing span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,60%,to{transform:translateY(0);opacity:.45}30%{transform:translateY(-4px);opacity:1}}.att{display:flex;flex-direction:column;gap:6px;max-width:100%}.att img,.att video{max-width:100%;max-height:320px;border-radius:var(--r-md);background:var(--bg)}.att figcaption{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.att-file,.att-load{display:flex;flex-direction:column;gap:2px;min-height:44px;padding:10px 14px;text-align:left;text-decoration:none;color:inherit;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md);transition:background .18s var(--ease),transform .18s var(--ease)}.att-file span,.att-load span{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.att-file:hover,.att-load:hover:not(:disabled){background:var(--panel)}.att-load:active:not(:disabled){transform:scale(.985)}.att-load:disabled{opacity:.6;cursor:progress}main>form{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--panel);border-top:1px solid var(--line)}main>form input[type=text],main>form>input:not([type]){flex:1;min-width:0;min-height:42px;padding:0 14px;background:var(--panel-2);border:1px solid var(--line);border-radius:999px;transition:border-color .18s var(--ease)}main>form input:focus{outline:none;border-color:var(--accent)}.attach{display:grid;place-items:center;min-width:42px;min-height:42px;font-size:13px;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:999px;transition:color .18s var(--ease),border-color .18s var(--ease)}.attach:hover{color:var(--text);border-color:var(--accent)}.once{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:0 12px;font-size:12px;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:999px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .18s var(--ease),background .18s var(--ease),border-color .18s var(--ease)}.once input{accent-color:var(--accent)}.once.on{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}.primary{min-height:42px;padding:0 18px;font-weight:600;color:var(--accent-ink);background:var(--accent);border-radius:999px;transition:filter .18s var(--ease),transform .12s var(--ease)}.primary:hover:not(:disabled){filter:brightness(1.1)}.primary:active:not(:disabled){transform:scale(.97)}.primary:disabled{opacity:.55;cursor:not-allowed}.splash{display:grid;place-items:center;height:100dvh;padding:24px}main .splash{height:auto}.card{display:flex;flex-direction:column;gap:14px;width:min(420px,100%);padding:28px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);animation:rise .3s var(--ease) both}.card h1{font-size:28px;letter-spacing:-.02em}.sub{font-size:14px;color:var(--muted)}.card label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.card input{min-height:42px;padding:0 12px;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);transition:border-color .18s var(--ease)}.card input:focus{outline:none;border-color:var(--accent)}.fine{font-size:12px;line-height:1.5;color:var(--muted)}@media(max-width:720px){.app{grid-template-columns:minmax(0,1fr)}.app>main{display:none}.app.open>aside{display:none}.app.open>main{display:grid}aside{border-right:0}.back{display:grid;place-items:center}.row{max-width:88%}.messages{padding:14px}main>form{padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom))}.once{padding:0 10px}}@media(hover:none){.msg-actions,.conv-del{opacity:1}.conv-del{width:40px;height:40px}.msg-actions{height:auto;padding:2px 4px}.msg-actions button{min-height:32px;padding:0 8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms}}.start{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md);animation:rise .18s var(--ease) both}.start input{min-height:40px;padding:0 12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm);transition:border-color .18s var(--ease)}.start input:focus{outline:none;border-color:var(--accent)}.start-row{display:flex;gap:8px}.start-row .primary{flex:1}.quiet{min-height:42px;padding:0 14px;font-size:13px;color:var(--muted);border-radius:999px;transition:color .18s var(--ease),background .18s var(--ease)}.quiet:hover{color:var(--text);background:var(--panel)}.conv-del.armed{width:auto;padding:0 8px;font-size:11px;font-weight:600;opacity:1;color:var(--danger);background:color-mix(in srgb,var(--danger) 16%,transparent)}.avatar{display:grid;flex:0 0 auto;place-items:center;font-weight:700;color:#fff;border-radius:50%;background:linear-gradient(160deg,hsl(var(--h) 62% 52%),hsl(var(--h) 58% 38%));-webkit-user-select:none;user-select:none}.avatar.sm{width:26px;height:26px;font-size:10px}.avatar.md{width:38px;height:38px;font-size:13px}.head-body{display:flex;flex-direction:column;min-width:0}.head-sub{font-size:12px;color:var(--muted)}.jump{position:absolute;right:20px;bottom:86px;padding:8px 14px;font-size:12px;font-weight:600;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow);animation:rise .18s var(--ease) both}.jump:hover{border-color:var(--accent)}.pitch{max-width:380px;text-align:center}.pitch h2{font-size:24px;letter-spacing:-.02em}.pitch p{margin-top:8px;color:var(--muted)}.toast{position:fixed;bottom:24px;left:50%;z-index:10;display:flex;align-items:center;gap:12px;max-width:min(520px,calc(100vw - 32px));padding:12px 12px 12px 16px;font-size:13px;color:var(--text);background:var(--panel-2);border:1px solid color-mix(in srgb,var(--danger) 45%,var(--line));border-radius:var(--r-md);box-shadow:var(--shadow);transform:translate(-50%);animation:toast-in .22s var(--ease) both}.toast span{overflow-wrap:anywhere}.toast button{flex:0 0 auto;width:28px;height:28px;font-size:18px;line-height:1;color:var(--muted);border-radius:var(--r-sm)}.toast button:hover{color:var(--text);background:var(--panel)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}}.att audio{width:min(320px,100%);min-width:240px}.att video{max-height:60dvh}.bar{display:block;width:100%;height:3px;margin-top:6px;overflow:hidden;background:color-mix(in srgb,var(--muted) 30%,transparent);border-radius:999px}.bar>span{display:block;height:100%;background:var(--accent);border-radius:inherit;transition:width .2s var(--ease)}.expiry{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.expiry.soon{color:var(--warn)}.upload{display:flex;flex-direction:column;gap:2px;padding:8px 16px;font-size:12px;color:var(--muted);background:var(--panel);border-top:1px solid var(--line)}.upload>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att figcaption a{color:var(--accent)}.stale{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;padding:10px 16px;font-size:13px;color:var(--accent-ink);background:var(--accent);box-shadow:var(--shadow)}.stale .primary{min-height:32px;padding:0 14px;font-size:13px;color:var(--accent);background:var(--accent-ink)}.danger-text{color:var(--danger)}.card code{padding:1px 5px;font-size:12px;background:var(--panel-2);border:1px solid var(--line);border-radius:4px}
