:root{--bg:#f3f1ec;--surface:#fff;--surface-2:#f7f6f2;--line:#141e1c17;--ink:#17201e;--ink-soft:#4d5a57;--ink-faint:#8a9593;--accent:#0e7c6b;--accent-ink:#fff;--accent-soft:#0e7c6b1a;--danger:#c2410c;--chat-bg:#ece7df;--me:#d5f0e7;--me-ink:#10241f;--them:#fff;--them-ink:#17201e;--read:#1d8cf0;--quote-bar:#0e7c6b;--shadow:0 1px 1px #0000000f;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0e1413;--surface:#141c1b;--surface-2:#1a2423;--line:#dcebe614;--ink:#e7eeec;--ink-soft:#a9b6b3;--ink-faint:#74817e;--accent:#2bb39b;--accent-ink:#06201b;--accent-soft:#2bb39b24;--danger:#fb923c;--chat-bg:#0b1110;--me:#11463c;--me-ink:#e3f4ef;--them:#1c2726;--them-ink:#e7eeec;--read:#53b4ff;--quote-bar:#2bb39b;--shadow:0 1px 1px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;font:16px/1.4 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif}button,input,textarea{font:inherit;color:inherit}.app{background:var(--bg);grid-template-columns:1fr;height:100dvh;display:grid;overflow:hidden}.pane-list,.pane-chat{flex-direction:column;min-width:0;height:100dvh;min-height:0;display:flex}.pane-chat{background:var(--chat-bg)}@media (max-width:899px){.app.has-chat .pane-list,.app:not(.has-chat) .pane-chat{display:none}}@media (min-width:900px){.app{grid-template-columns:minmax(320px,400px) 1fr}.pane-list{border-right:1px solid var(--line)}.btn-back{display:none!important}}.list-head{padding:calc(env(safe-area-inset-top) + 10px) 16px 8px;background:var(--surface);border-bottom:1px solid var(--line);flex-direction:column;gap:10px;display:flex}.list-title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.list-title{letter-spacing:-.02em;margin:0;font-size:28px;font-weight:750}.icon-btn{cursor:pointer;width:40px;height:40px;color:var(--ink-soft);background:0 0;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--accent-soft);color:var(--accent)}.icon-btn:disabled{opacity:.4;cursor:default}.icon-btn svg{width:22px;height:22px}.search{background:var(--surface-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a9593' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 11px center / 17px;border:0;border-radius:10px;width:100%;padding:9px 12px 9px 36px;font-size:16px}.search:focus{outline:2px solid var(--accent-soft)}.filters{gap:6px;display:flex}.filter{background:var(--surface-2);color:var(--ink-soft);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:14px;font-weight:600;display:inline-flex}.filter.active{background:var(--accent-soft);color:var(--accent)}.count{background:var(--accent);color:var(--accent-ink);border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:700;display:inline-flex}.banner{background:var(--accent-soft);color:var(--ink);border-radius:12px;align-items:center;gap:10px;margin:10px 12px 0;padding:10px 12px;font-size:14px;display:flex}.banner.is-warn{background:#ea8c1e24}.banner p{flex:1;margin:0}.banner .btn{flex-shrink:0}.items{padding:0 0 env(safe-area-inset-bottom);background:var(--surface);-webkit-overflow-scrolling:touch;flex:1;min-height:0;margin:0;list-style:none;overflow-y:auto}.item{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;width:100%;padding:10px 16px;display:flex;position:relative}.item:after{content:"";background:var(--line);height:1px;position:absolute;bottom:0;left:76px;right:0}.item:hover,.item.active{background:var(--surface-2)}.item-main{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.item-row{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.item-name{text-overflow:ellipsis;white-space:nowrap;font-size:16.5px;font-weight:650;overflow:hidden}.item-time{color:var(--ink-faint);white-space:nowrap;font-size:12.5px}.item.is-unread .item-time{color:var(--accent);font-weight:650}.item-preview{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;min-width:0;font-size:14.5px;display:flex;overflow:hidden}.item-preview span:last-child{text-overflow:ellipsis;overflow:hidden}.item.is-unread .item-preview{color:var(--ink)}.item-none{color:var(--ink-faint);font-style:italic}.empty{text-align:center;color:var(--ink-faint);padding:40px 24px;font-size:15px}.avatar{color:#fff;letter-spacing:.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:50px;height:50px;font-size:17px;font-weight:700;display:inline-flex}.avatar.sm{width:38px;height:38px;font-size:14px}.conv-head{padding:calc(env(safe-area-inset-top) + 6px) 8px 6px;background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:8px;display:flex}.btn-back{color:var(--accent);cursor:pointer;background:0 0;border:0;align-items:center;gap:2px;min-width:44px;padding:6px 4px;font-size:17px;display:inline-flex}.btn-back svg{width:24px;height:24px}.btn-back .count{margin-left:2px}.conv-title{flex-direction:column;flex:1;min-width:0;display:flex}.conv-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:16.5px;overflow:hidden}.conv-title span{color:var(--ink-faint);font-size:12.5px}.messages{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex-direction:column;flex:1;gap:2px;min-height:0;padding:8px 10px 12px;display:flex;overflow:hidden auto}.messages>:first-child{margin-top:auto}.day{color:var(--ink-soft);background:var(--surface);box-shadow:var(--shadow);text-transform:capitalize;border-radius:8px;align-self:center;margin:10px 0 6px;padding:4px 10px;font-size:12.5px;font-weight:600}.history-start,.older{color:var(--ink-faint);align-self:center;margin:6px 0;font-size:12.5px}.older{background:var(--surface);cursor:pointer;box-shadow:var(--shadow);color:var(--ink-soft);border:0;border-radius:999px;padding:6px 12px}.row{touch-action:pan-y;align-items:flex-end;gap:6px;max-width:100%;display:flex}.row.is-me{flex-direction:row-reverse}.row+.row.is-me:not(.first),.row+.row:not(.is-me):not(.first){margin-top:0}.row.first{margin-top:6px}.bubble{background:var(--them);max-width:min(78%,560px);color:var(--them-ink);box-shadow:var(--shadow);overflow-wrap:anywhere;border-radius:12px;padding:6px 9px 7px;font-size:16px;line-height:1.35;transition:transform .15s ease-out;position:relative}.row.is-me .bubble{background:var(--me);color:var(--me-ink)}.row.first:not(.is-me) .bubble{border-top-left-radius:4px}.row.first.is-me .bubble{border-top-right-radius:4px}.bubble.is-deleted{opacity:.7;font-style:italic}.bubble.is-sticker{box-shadow:none;background:0 0;padding:0}.text{white-space:pre-wrap}.text a{color:var(--read)}.meta{float:right;color:var(--ink-faint);align-items:center;gap:3px;margin:6px 0 -4px 10px;font-size:11.5px;display:inline-flex;position:relative;top:2px}.row.is-me .meta{color:color-mix(in srgb, var(--me-ink) 55%, transparent)}.ticks{color:inherit;display:inline-flex}.ticks.is-read{color:var(--read)}.ticks.is-error{color:var(--danger);font-weight:800}.ticks svg{width:17px;height:12px}.reactions{background:var(--surface);border-radius:999px;padding:1px 5px;font-size:13px;position:absolute;bottom:-14px;right:8px;box-shadow:0 1px 3px #00000026}.row.has-reactions{margin-bottom:14px}.reply-hint{background:var(--surface);opacity:0;width:30px;height:30px;color:var(--ink-soft);cursor:pointer;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-self:center;align-items:center;display:inline-flex}.reply-hint svg{width:16px;height:16px}@media (hover:hover){.row:hover .reply-hint{opacity:1}}.sender{color:var(--ink-faint);align-self:center;font-size:11px}.quote{border-left:3px solid var(--quote-bar);background:color-mix(in srgb, var(--ink) 6%, transparent);border-radius:6px;flex-direction:column;gap:1px;min-width:0;margin-bottom:4px;padding:4px 8px;font-size:13.5px;display:flex}.quote-who{color:var(--accent);font-size:12.5px;font-weight:650}.quote-text{color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.quote.is-missing{color:var(--ink-faint);font-style:italic}.img-link{margin:-3px -6px 4px;display:block}.img{object-fit:cover;background:color-mix(in srgb, var(--ink) 6%, transparent);border-radius:9px;min-width:160px;max-width:100%;min-height:120px;max-height:360px;display:block}.sticker{object-fit:contain;width:140px;height:140px}.video{background:#000;border-radius:9px;max-width:100%;max-height:360px;margin-bottom:4px;display:block}.doc{background:color-mix(in srgb, var(--ink) 6%, transparent);color:inherit;border-radius:9px;align-items:center;gap:10px;min-width:200px;margin-bottom:4px;padding:8px;text-decoration:none;display:flex}.doc-icon{font-size:26px}.doc-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14.5px;font-weight:600;overflow:hidden}.doc-size{color:var(--ink-faint);font-size:12px}.missing{color:var(--ink-faint);font-size:14px;font-style:italic}.audio{align-items:center;gap:10px;min-width:230px;padding:2px 0 4px;display:flex}.audio-play{background:var(--accent);width:38px;height:38px;color:var(--accent-ink);cursor:pointer;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.audio-play svg{width:18px;height:18px}.audio-track{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.audio-range{width:100%;accent-color:var(--accent);height:20px;margin:0}.audio-info{color:var(--ink-faint);justify-content:space-between;font-size:11.5px;display:flex}.audio-speed{background:color-mix(in srgb, var(--ink) 10%, transparent);cursor:pointer;border:0;border-radius:999px;flex-shrink:0;padding:3px 7px;font-size:12px;font-weight:700}.composer{background:var(--surface);border-top:1px solid var(--line);padding:6px 8px calc(env(safe-area-inset-bottom) + 6px);flex-direction:column;gap:6px;display:flex}.composer.is-readonly{padding:14px 16px calc(env(safe-area-inset-bottom) + 14px);text-align:center;color:var(--ink-soft);font-size:14px}.composer-row{align-items:flex-end;gap:4px;display:flex}.textarea{resize:none;border:1px solid var(--line);background:var(--surface-2);border-radius:20px;flex:1;min-width:0;max-height:160px;padding:8px 14px;font-size:16px;line-height:1.35}.textarea:focus{border-color:var(--accent);outline:none}.send-btn{background:var(--accent);width:40px;height:40px;color:var(--accent-ink);cursor:pointer;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.send-btn:disabled{opacity:.5}.send-btn svg{width:20px;height:20px}.chip-bar{background:var(--surface-2);border-radius:12px;align-items:center;gap:8px;min-width:0;padding:6px 8px 6px 10px;font-size:14px;display:flex}.chip-bar .quote{flex:1;margin:0}.chip-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.chip-bar audio{flex:1;min-width:0;height:36px}.recording{align-items:center;gap:10px;padding:4px 4px 4px 10px;display:flex}.rec-dot{background:#e11d48;border-radius:50%;width:10px;height:10px;animation:1s infinite blink}@keyframes blink{50%{opacity:.3}}.recording-time{font-variant-numeric:tabular-nums;flex:1}.send-error{color:var(--danger);margin:0;padding:0 6px;font-size:13.5px}.btn{cursor:pointer;background:var(--accent);color:var(--accent-ink);border:0;border-radius:999px;padding:8px 14px;font-size:14.5px;font-weight:650}.btn.ghost{color:var(--ink-soft);background:0 0}.btn.soft{background:var(--accent-soft);color:var(--accent)}.btn:disabled{opacity:.55;cursor:default}.placeholder{text-align:center;color:var(--ink-faint);max-width:360px;margin:auto;padding:24px}.placeholder h2{color:var(--ink-soft);margin:12px 0 6px;font-size:18px}.login{min-height:100dvh;padding:24px 16px calc(env(safe-area-inset-bottom) + 24px);justify-content:center;align-items:center;display:flex}.login form{flex-direction:column;gap:12px;width:100%;max-width:360px;display:flex}.login-logo{border-radius:16px;align-self:center;width:64px;height:64px}.login h1{text-align:center;letter-spacing:-.02em;margin:4px 0 0;font-size:26px}.login p{text-align:center;color:var(--ink-soft);margin:0 0 8px;font-size:15px}.field{border:1px solid var(--line);background:var(--surface);border-radius:12px;width:100%;padding:12px 14px;font-size:16px}.field:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.login .btn{border-radius:12px;padding:12px;font-size:16px}.login-error{color:var(--danger);text-align:center;margin:0;font-size:14px}.sheet-backdrop{z-index:20;background:#00000059;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (min-width:900px){.sheet-backdrop{align-items:center}}.sheet{background:var(--surface);width:100%;max-width:480px;max-height:92dvh;padding:8px 18px calc(env(safe-area-inset-bottom) + 18px);border-radius:18px 18px 0 0;overflow-y:auto}@media (min-width:900px){.sheet{border-radius:18px}}.sheet-grip{background:var(--line);border-radius:3px;width:38px;height:5px;margin:4px auto 10px}.sheet h2{margin:0 0 12px;font-size:20px}.sheet section{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding:14px 0;display:flex}.sheet h3{margin:0;font-size:15px}.sheet p,.sheet li{color:var(--ink-soft);margin:0;font-size:14.5px}.sheet ol{flex-direction:column;gap:4px;margin:0;padding-left:20px;display:flex}.sheet .actions{flex-wrap:wrap;gap:8px;display:flex}.status-pill{align-items:center;gap:6px;font-size:13.5px;font-weight:600;display:inline-flex}.status-pill:before{content:"";background:var(--ink-faint);border-radius:50%;width:8px;height:8px}.status-pill.on:before{background:#10b981}.status-pill.off:before{background:#e11d48}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.missing.is-block{margin-bottom:4px;display:block}.author{margin-bottom:2px;font-size:13px;font-weight:650;display:block}.item-owner{color:var(--ink-faint);font-size:14px;font-weight:500}
