*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{color:#1a1a1a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8f8f7;min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}button{font:inherit;cursor:pointer}input{font:inherit}.page{max-width:640px;margin:0 auto;padding:4rem 1.5rem}.page h1{margin:0 0 1rem;font-size:1.75rem;font-weight:600}.page p{color:#555;margin:0}.page .signout{color:#333;background:#fff;border:1px solid #ccc;border-radius:9999px;margin-top:1.5rem;padding:.4rem 1rem}.page .signout:hover{border-color:#888}.chat-shell{flex-direction:column;max-width:720px;height:100vh;margin:0 auto;padding:1.25rem 1rem;display:flex}.chat-header{border-bottom:1px solid #e5e5e5;margin-bottom:1rem;padding-bottom:.75rem}.chat-header h1{margin:0;font-size:1.125rem;font-weight:600}.chat-header p{color:#888;margin:.25rem 0 0;font-size:.875rem}.chat-messages{scrollbar-gutter:stable;flex-direction:column;flex:1;gap:.75rem;padding:0 .75rem 1rem 0;display:flex;overflow-y:auto}.chat-empty{color:#999;font-size:.875rem}.bubble{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;border-radius:1rem;max-width:80%;padding:.5rem .9rem}.bubble.typing{align-items:center;gap:4px;padding:.65rem .9rem;display:inline-flex}.bubble.typing span{background:#888;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite both typing-bounce}.bubble.typing span:first-child{animation-delay:-.32s}.bubble.typing span:nth-child(2){animation-delay:-.16s}@keyframes typing-bounce{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.bubble.user{color:#fff;background:#1a1a1a;margin-left:auto}.bubble.assistant{background:#fff;border:1px solid #e5e5e5;margin-right:auto}.composer{border-top:1px solid #e5e5e5;align-items:flex-end;gap:.5rem;padding-top:.75rem;display:flex}.composer textarea{resize:none;font:inherit;background:#fff;border:1px solid #ccc;border-radius:1.25rem;outline:none;flex:1;max-height:9rem;padding:.5rem 1rem;line-height:1.4;overflow-y:auto}.composer textarea:focus{border-color:#888}.composer button{color:#fff;background:#1a1a1a;border:none;border-radius:9999px;flex-shrink:0;padding:.5rem 1.25rem}.composer button:disabled{opacity:.4;cursor:not-allowed}
