*{box-sizing:border-box;margin:0}:root{color-scheme:dark;--bg: #0c0c0e;--surface: #17171a;--text: #f5f5f4;--muted: #8a8a93;--accent: #e8e6df}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font:16px/1.5 -apple-system,SF Pro Text,system-ui,sans-serif}.login{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.login h1{font-weight:600;letter-spacing:.02em}.login input{background:var(--surface);border:1px solid #2a2a2e;border-radius:999px;color:var(--text);padding:10px 18px;width:260px;outline:none}.login button{background:var(--accent);border:none;border-radius:999px;color:var(--bg);cursor:pointer;font-weight:600;padding:10px 24px}.error{color:#e07a6a;font-size:14px}.chat{height:100%;display:flex;flex-direction:column;max-width:720px;margin:0 auto}header{display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 12px) 20px 12px}.brand{font-weight:600;letter-spacing:.04em}.header-right{display:flex;align-items:center;gap:12px}.bell{background:transparent;border:1px solid #2a2a2e;border-radius:999px;color:var(--muted);cursor:pointer;font-size:12px;padding:4px 12px}.bubble.ping{border-left:2px solid #7fbf7f}.system-event{align-self:center;color:var(--muted);font-size:13px;max-width:90%;text-align:center}.dot{width:8px;height:8px;border-radius:50%;background:#5a5a63}.dot.on{background:#7fbf7f}main{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:8px 20px}.bubble{max-width:85%;padding:10px 14px;border-radius:18px;white-space:pre-wrap;overflow-wrap:break-word}.bubble.owner{align-self:flex-end;background:var(--accent);color:var(--bg);border-bottom-right-radius:6px}.bubble.agent{align-self:flex-start;background:var(--surface);border-bottom-left-radius:6px}.bubble.streaming:after{content:"▍";color:var(--muted)}footer{display:flex;gap:10px;align-items:flex-end;padding:12px 20px calc(env(safe-area-inset-bottom) + 12px)}footer textarea{flex:1;background:var(--surface);border:1px solid #2a2a2e;border-radius:20px;color:var(--text);padding:10px 16px;resize:none;outline:none;font:inherit}footer button{background:var(--accent);border:none;border-radius:999px;color:var(--bg);cursor:pointer;font-weight:600;padding:10px 20px}footer button:disabled{opacity:.4;cursor:default}
