:root{--bg: #f4f5f7;--panel: #ffffff;--user: #2563eb;--assistant: #e5e7eb;--text: #1f2937;--border: #d1d5db;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}.centered{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{background:var(--panel);padding:2.5rem 3rem;border-radius:12px;box-shadow:0 4px 20px #00000014;text-align:center}.login-card button,.message-input button{background:var(--user);color:#fff;border:none;padding:.6rem 1.4rem;border-radius:8px;font-size:1rem;cursor:pointer}.login-card button:hover,.message-input button:hover{filter:brightness(1.05)}.message-input button:disabled{opacity:.5;cursor:not-allowed}.app{max-width:820px;margin:0 auto;height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1.2rem;background:var(--panel);border-bottom:1px solid var(--border)}.app-header h1{font-size:1.1rem;margin:0}.link-btn{background:none;border:none;color:var(--user);cursor:pointer;font-size:.9rem}.app-main{flex:1;display:flex;flex-direction:column;min-height:0;padding:1rem}.chat-window{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.9rem;padding:.5rem}.chat-empty{color:#6b7280;text-align:center;margin-top:2rem}.msg{max-width:80%;display:flex;flex-direction:column;gap:.25rem}.msg-user{align-self:flex-end;align-items:flex-end}.msg-assistant{align-self:flex-start}.msg-role{font-size:.72rem;color:#6b7280}.msg-content{padding:.6rem .9rem;border-radius:12px;white-space:pre-wrap;word-break:break-word;line-height:1.45}.msg-user .msg-content{background:var(--user);color:#fff;border-bottom-right-radius:2px}.msg-assistant .msg-content{background:var(--assistant);color:var(--text);border-bottom-left-radius:2px}.msg-typing{font-size:1.3rem;letter-spacing:2px}.message-input{display:flex;gap:.6rem;padding-top:.8rem;border-top:1px solid var(--border)}.message-input textarea{flex:1;resize:none;padding:.6rem .8rem;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:.95rem}.error{color:#dc2626;font-size:.85rem;margin:.5rem 0}
