:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a24;--text-primary: #e8e8ed;--text-secondary: #9898a8;--text-muted: #6b6b7a;--accent: #6366f1;--accent-hover: #818cf8;--accent-soft: #4f46e520;--user-bg: #2d2d3a;--hannah-bg: #1e1e28;--border: #2a2a35;--error: #ef4444;--success: #22c55e;--warning: #eab308}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1rem}.loading-logo{width:64px;height:64px;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.95)}}.login-container{display:flex;align-items:center;justify-content:center;min-height:100%;padding:1rem}.login-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;padding:2.5rem 2rem;width:100%;max-width:400px}.login-header{text-align:center;margin-bottom:2rem}.login-logo{width:72px;height:72px;margin-bottom:1rem}.login-header h1{font-size:2rem;font-weight:600;margin-bottom:.5rem}.login-header .subtitle{color:var(--text-secondary);font-size:.875rem;line-height:1.4}.login-card form{display:flex;flex-direction:column;gap:1rem}.input-group{position:relative}.login-card input{width:100%;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;padding:.875rem 1rem;color:var(--text-primary);font-size:1rem;transition:border-color .2s,box-shadow .2s}.login-card input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.login-card input::placeholder{color:var(--text-muted)}.turnstile-widget{display:flex;justify-content:center;margin:.5rem 0}.login-card button{background:var(--accent);border:none;border-radius:10px;padding:.875rem 1.5rem;color:#fff;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s,transform .1s;margin-top:.5rem}.login-card button:hover:not(:disabled){background:var(--accent-hover)}.login-card button:active:not(:disabled){transform:scale(.98)}.login-card button:disabled{opacity:.5;cursor:not-allowed}.login-card .error{color:var(--error);font-size:.875rem;text-align:center;padding:.5rem;background:#ef44441a;border-radius:6px}.login-footer{margin-top:1.5rem;text-align:center}.login-footer p{color:var(--text-muted);font-size:.75rem}.chat-container{display:flex;flex-direction:column;height:100%;max-width:900px;margin:0 auto}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--bg-secondary);position:sticky;top:0;z-index:10}.header-left{display:flex;align-items:center;gap:.75rem}.header-logo{width:32px;height:32px}.chat-header h1{font-size:1.125rem;font-weight:600}.header-right{display:flex;align-items:center;gap:.5rem}.clear-button,.logout-button{background:transparent;border:1px solid var(--border);border-radius:8px;padding:.5rem 1rem;color:var(--text-secondary);font-size:.875rem;cursor:pointer;transition:all .2s}.clear-button:hover,.logout-button:hover{border-color:var(--text-secondary);color:var(--text-primary)}.status-bar{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-secondary);padding-left:.75rem;border-left:1px solid var(--border);margin-left:.5rem}.status-bar .disposition{display:flex;align-items:center;gap:.25rem}.energy-high{color:var(--success)}.energy-medium{color:var(--warning)}.energy-low{color:var(--error)}.messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin:auto;padding:2rem}.welcome-logo{width:80px;height:80px;margin-bottom:1rem;opacity:.8}.welcome h2{font-size:1.5rem;font-weight:500;margin-bottom:.5rem}.welcome p{color:var(--text-secondary)}.message{max-width:80%;padding:.75rem 1rem;border-radius:16px;position:relative}.message.user{background:var(--user-bg);align-self:flex-end;border-bottom-right-radius:4px}.message.assistant{background:var(--hannah-bg);align-self:flex-start;border-bottom-left-radius:4px;border:1px solid var(--border)}.message-content{white-space:pre-wrap;word-wrap:break-word}.message-time{font-size:.7rem;color:var(--text-muted);margin-top:.25rem;text-align:right}.message.assistant .message-time{text-align:left}.error-message{background:#ef44441a;color:var(--error);padding:.75rem 1rem;border-radius:8px;font-size:.875rem;text-align:center}.typing-indicator{display:flex;gap:4px;padding:.75rem 1rem;background:var(--hannah-bg);border:1px solid var(--border);border-radius:16px 16px 16px 4px;align-self:flex-start;max-width:fit-content}.typing-indicator span{width:8px;height:8px;background:var(--text-secondary);border-radius:50%;animation:bounce 1.4s infinite ease-in-out}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.input-area{display:flex;gap:.5rem;padding:1rem;border-top:1px solid var(--border);background:var(--bg-secondary)}.input-area textarea{flex:1;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;padding:.75rem 1rem;color:var(--text-primary);font-size:1rem;font-family:inherit;resize:none;min-height:44px;max-height:120px;line-height:1.4;transition:border-color .2s}.input-area textarea:focus{outline:none;border-color:var(--accent)}.input-area textarea::placeholder{color:var(--text-muted)}.send-button{background:var(--accent);border:none;border-radius:12px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s,transform .1s;flex-shrink:0}.send-button svg{width:20px;height:20px;color:#fff}.send-button:hover:not(:disabled){background:var(--accent-hover)}.send-button:active:not(:disabled){transform:scale(.95)}.send-button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.message{max-width:90%}.status-bar{display:none}.chat-header h1{font-size:1rem}.clear-button{display:none}}.messages::-webkit-scrollbar{width:6px}.messages::-webkit-scrollbar-track{background:transparent}.messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.messages::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
