:root{--bg:#f4f5f7;--panel:#fff;--ink:#1b1f24;--muted:#6b7380;--line:#e3e6ea;--accent:#1f6feb;--accent-ink:#fff;--mine:#1f6feb;--theirs:#fff;--warn:#b54708;--ok:#137333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body,html{background:var(--bg);color:var(--ink);height:100%;margin:0}button{background:var(--accent);border:0;border-radius:8px;color:var(--accent-ink);cursor:pointer;font:inherit;padding:9px 14px}button.ghost{background:transparent;border:1px solid var(--line);color:var(--accent)}button:disabled{cursor:default;opacity:.5}input,textarea{background:#fff;border:1px solid var(--line);border-radius:10px;color:var(--ink);font:inherit;padding:10px 12px;width:100%}textarea{resize:none}.chat{display:flex;flex-direction:column;height:100%;min-height:0}.chat-head{align-items:center;background:var(--panel);border-bottom:1px solid var(--line);display:flex;gap:10px;padding:14px 16px}.chat-head .title{font-weight:600}.chat-head .sub{color:var(--muted);font-size:13px}.chat-head .spacer{flex:1}.thread{display:flex;flex:1;flex-direction:column;gap:8px;overflow-y:auto;padding:16px}.bubble{border-radius:14px;line-height:1.4;max-width:78%;padding:9px 12px;white-space:pre-wrap;word-wrap:break-word;box-shadow:0 1px 1px rgba(0,0,0,.04)}.bubble.mine{align-self:flex-end;background:var(--mine);border-bottom-right-radius:4px;color:#fff}.bubble.theirs{align-self:flex-start;background:var(--theirs);border:1px solid var(--line);border-bottom-left-radius:4px}.bubble .alt{border-top:1px solid hsla(0,0%,49.8%,.25);display:block;font-size:12.5px;margin-top:5px;opacity:.75;padding-top:4px}.bubble .time{display:block;font-size:11px;margin-top:3px;opacity:.6}.bubble.pending{opacity:.6}.bubble.failed{background:#fde8e8;border:1px solid #f5b5b5;color:#8a1c1c}.empty{color:var(--muted);font-size:14px;margin:auto;max-width:320px;text-align:center}.composer{background:var(--panel);border-top:1px solid var(--line);display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.composer textarea{height:44px;max-height:140px}.note{color:var(--muted);font-size:12px;padding:6px;text-align:center}.banner{background:#fff7e6;border-bottom:1px solid #f3dfb7;color:var(--warn);font-size:13px;padding:8px 14px}.banner.ok{background:#e7f5ea;border-color:#c4e5cb;color:var(--ok)}.es-client .chat{background:var(--bg);margin:0 auto;max-width:720px}.es-client .avatar{background:var(--accent);border-radius:50%;color:#fff;display:grid;font-weight:600;height:38px;place-items:center;width:38px}.inbox{display:grid;grid-template-columns:300px 1fr;height:100%}.side{background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.side-head{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:8px;padding:14px 16px}.side-head .title{flex:1;font-weight:600}.list{flex:1;overflow-y:auto}.item{border-bottom:1px solid var(--line);cursor:pointer;display:grid;gap:2px 8px;grid-template-columns:1fr auto;padding:12px 16px}.item:hover{background:#f7f8fa}.item.active{background:#eaf2ff}.item .name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item .when{color:var(--muted);font-size:12px}.item .last{color:var(--muted);font-size:13px;grid-column:1/-1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dot{background:var(--accent);border-radius:50%;display:inline-block;height:9px;margin-right:6px;vertical-align:middle;width:9px}.tag{background:#fff3e0;border-radius:6px;color:var(--warn);font-size:11px;margin-left:6px;padding:1px 6px}.main{display:flex;flex-direction:column;min-height:0}.modal-bg{background:rgba(15,20,30,.4);display:grid;inset:0;padding:16px;place-items:center;position:fixed;z-index:10}.modal{background:#fff;border-radius:14px;display:flex;flex-direction:column;gap:12px;max-height:85vh;overflow:auto;padding:18px;width:min(520px,100%)}.modal h3{margin:0}.result{align-items:center;border:1px solid var(--line);border-radius:10px;display:flex;gap:8px;padding:10px 12px}.result .info{flex:1;min-width:0}.result .info small{color:var(--muted);display:block;overflow:hidden;text-overflow:ellipsis}.linkbox{background:var(--bg);border-radius:8px;font-size:13px;padding:10px;word-break:break-all}.back{display:none}@media (max-width:760px){.inbox{grid-template-columns:1fr}.inbox.viewing .side,.inbox:not(.viewing) .main{display:none}.back{display:inline-block}}