:root{--primary:#09090b;--primary-glow:rgba(9,9,11,0.05);--primary-hover:#27272a;--secondary:#52525b;--accent:#71717a;--bg-base:#fafafa;--bg-chat:#ffffff;--surface:#ffffff;--surface-elevated:#ffffff;--surface-hover:#f4f4f5;--text-primary:#09090b;--text-secondary:#52525b;--text-muted:#a1a1aa;--border:#e4e4e7;--border-light:#f4f4f5;--user-bubble:#09090b;--user-text:#ffffff;--bot-bubble:#ffffff;--bot-text:#09090b;--shadow-sm:0 1px 2px rgba(0,0,0,0.02),0 1px 4px rgba(0,0,0,0.02);--shadow-md:0 4px 12px rgba(0,0,0,0.04),0 1px 3px rgba(0,0,0,0.02);--shadow-lg:0 8px 32px rgba(0,0,0,0.06);--shadow-input:0 2px 14px rgba(0,0,0,0.03);--radius-sm:6px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--radius-full:9999px;--font-heading:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}@media (prefers-color-scheme:dark){:root{--primary:#ffffff;--primary-glow:rgba(255,255,255,0.08);--primary-hover:#f4f4f5;--secondary:#a1a1aa;--accent:#d4d4d8;--bg-base:#000000;--bg-chat:#09090b;--surface:#09090b;--surface-elevated:#18181b;--surface-hover:#18181b;--text-primary:#ffffff;--text-secondary:#a1a1aa;--text-muted:#52525b;--border:#27272a;--border-light:#18181b;--user-bubble:#ffffff;--user-text:#000000;--bot-bubble:#09090b;--bot-text:#ffffff;--shadow-sm:0 1px 2px rgba(0,0,0,0.4);--shadow-md:0 4px 12px rgba(0,0,0,0.6);--shadow-lg:0 8px 32px rgba(0,0,0,0.8)}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg-base);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading)}.app-container{display:flex;flex-direction:column;height:100vh;height:100dvh;max-width:720px;margin:0 auto;width:100%;background:var(--bg-chat);background-image:radial-gradient(var(--border) 1px,transparent 1px);background-size:24px 24px;position:relative;overflow:hidden;box-shadow:0 0 40px rgba(0,0,0,.02)}.header{padding:14px 20px;background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;flex-shrink:0;z-index:10;box-shadow:var(--shadow-sm)}.header,.header-title{display:flex;align-items:center}.header-title{gap:14px}.header-logo{background:var(--user-bubble);color:var(--user-text);width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.8rem;letter-spacing:.5px;font-family:var(--font-heading);box-shadow:0 4px 14px rgba(0,0,0,.3)}.header-info h1{font-size:1.05rem;font-weight:700;color:var(--text-primary);line-height:1.3}.header-status{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-muted)}.status-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 6px rgba(34,197,94,.5);animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.header-lock-btn{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:8px;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.header-lock-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-glow)}.chat-area{flex:1 1;overflow-y:auto;padding:24px 20px;display:flex;flex-direction:column;gap:6px;scroll-behavior:smooth}.chat-area::-webkit-scrollbar{width:4px}.chat-area::-webkit-scrollbar-track{background:transparent}.chat-area::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.message-row{display:flex;width:100%;gap:10px;align-items:flex-end;animation:msg-appear .25s ease-out}@keyframes msg-appear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message-row.user{flex-direction:row-reverse}.avatar{width:30px;height:30px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.message-row.user .avatar{background:var(--primary-glow);color:var(--primary)}.message-row.bot .avatar{background:rgba(64,84,178,.1);color:var(--secondary)}.message-bubble{max-width:82%;padding:12px 16px;font-size:.92rem;line-height:1.65;position:relative}.message-row.user .message-bubble{background:var(--user-bubble);color:var(--user-text);border-radius:var(--radius-lg) var(--radius-lg) 6px var(--radius-lg);box-shadow:0 2px 12px rgba(0,0,0,.2)}.message-row.bot .message-bubble{background:var(--bot-bubble);color:var(--bot-text);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) 6px;border:1px solid var(--border);box-shadow:var(--shadow-sm)}.message-time{font-size:.68rem;color:var(--text-muted);margin-top:4px;padding:0 4px}.message-row.user .message-time{text-align:right}.markdown-content{font-size:.92rem;word-wrap:break-word;overflow-wrap:break-word}.markdown-content p{margin-bottom:8px}.markdown-content p:last-child{margin-bottom:0}.markdown-content strong{font-weight:700}.message-row.bot .markdown-content strong{color:var(--primary)}.message-row.user .markdown-content strong{color:var(--user-text)}.markdown-content em{font-style:italic;opacity:.9}.markdown-content blockquote{border-left:3px solid var(--primary);padding:8px 14px;margin:10px 0;background:var(--primary-glow);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-style:italic;color:var(--text-secondary)}.message-row.user .markdown-content blockquote{border-left-color:var(--user-text);background:rgba(255,255,255,.12);color:var(--user-text);opacity:.85}.markdown-content ol,.markdown-content ul{padding-left:18px;margin-bottom:8px}.markdown-content li{margin-bottom:3px}.markdown-content li::marker{color:var(--primary)}.message-row.user .markdown-content li::marker{color:var(--user-text);opacity:.6}.markdown-content h1,.markdown-content h2,.markdown-content h3{margin-top:12px;margin-bottom:6px;font-weight:700;font-family:var(--font-heading);line-height:1.3}.markdown-content h1{font-size:1.1rem}.markdown-content h2{font-size:1.02rem}.markdown-content h3{font-size:.95rem}.markdown-content a{color:var(--primary);text-decoration:none;border-bottom:1px dashed var(--primary);transition:border-color .2s}.markdown-content a:hover{border-bottom-style:solid}.message-row.user .markdown-content a{color:var(--user-text);border-bottom-color:var(--user-text);opacity:.8}.markdown-content hr{border:0;border-top:1px solid var(--border);margin:12px 0}.markdown-content code{background:rgba(0,0,0,.06);padding:2px 6px;border-radius:4px;font-size:.85em}.typing-indicator{display:flex;align-items:center;gap:5px;padding:10px 16px}.dot{width:7px;height:7px;background:var(--text-muted);border-radius:50%;animation:bounce 1.2s ease-in-out infinite both}.dot:first-child{animation-delay:-.3s}.dot:nth-child(2){animation-delay:-.15s}@keyframes bounce{0%,80%,to{transform:scale(.4);opacity:.4}40%{transform:scale(1);opacity:1}}.input-area{padding:12px 20px 20px;background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}.suggestion-chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:14px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.suggestion-chips::-webkit-scrollbar{display:none}.chip-button{background:var(--bg-chat);border:1px solid var(--border);color:var(--text-secondary);padding:8px 16px;border-radius:var(--radius-full);font-size:.8rem;font-family:var(--font-body);white-space:nowrap;cursor:pointer;transition:all .2s ease}.chip-button:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-glow);transform:translateY(-1px);box-shadow:0 3px 10px rgba(0,0,0,.12)}.input-container{display:flex;gap:10px;align-items:center;background:var(--bg-chat);padding:6px 6px 6px 18px;border-radius:var(--radius-full);border:1.5px solid var(--border);transition:all .25s ease;box-shadow:var(--shadow-input)}.input-container:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow),var(--shadow-input)}.input-field{flex:1 1;border:none;background:transparent;padding:10px 0;font-size:.92rem;font-family:var(--font-body);color:var(--text-primary);outline:none;min-width:0}.input-field::placeholder{color:var(--text-muted)}.send-button{background:var(--user-bubble);color:var(--user-text);border:none;border-radius:50%;width:40px;height:40px;min-width:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px rgba(0,0,0,.25)}.send-button:hover:not(:disabled){transform:scale(1.06);box-shadow:0 4px 14px rgba(0,0,0,.35)}.send-button:active:not(:disabled){transform:scale(.94)}.send-button:disabled{background:var(--border);color:var(--text-muted);cursor:not-allowed;box-shadow:none}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.auth-overlay{position:fixed;inset:0;background:rgba(12,18,32,.88);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.auth-card{background:var(--surface);border:1px solid var(--border);padding:40px 32px;border-radius:var(--radius-lg);max-width:380px;width:100%;text-align:center;box-shadow:var(--shadow-lg)}.auth-logo{width:60px;height:60px;background:var(--user-bubble);color:var(--user-text);font-weight:800;font-size:1.1rem;letter-spacing:.5px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;box-shadow:0 8px 24px rgba(0,0,0,.3)}.auth-card h2{font-size:1.4rem;font-weight:700;margin-bottom:6px;color:var(--text-primary)}.auth-card p{color:var(--text-muted);font-size:.88rem;margin-bottom:28px;line-height:1.5}.auth-input{width:100%;padding:14px;font-size:1.3rem;letter-spacing:6px;text-align:center;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--bg-chat);color:var(--text-primary);outline:none;margin-bottom:16px;font-family:var(--font-body);transition:border-color .2s}.auth-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.auth-button{width:100%;padding:14px;font-size:.95rem;font-weight:700;font-family:var(--font-heading);background:var(--user-bubble);color:var(--user-text);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;box-shadow:0 4px 14px rgba(0,0,0,.25)}.auth-button:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,0,0,.35)}.auth-button:active{transform:translateY(0)}.auth-error{color:#ef4444;font-size:.82rem;margin-top:12px;font-weight:500}.welcome-section{flex-direction:column;text-align:center;padding:40px 20px 20px;flex:1 1}.welcome-icon,.welcome-section{display:flex;align-items:center;justify-content:center}.welcome-icon{width:64px;height:64px;background:var(--user-bubble);color:var(--user-text);border-radius:18px;margin-bottom:18px;box-shadow:0 8px 24px rgba(0,0,0,.25)}.welcome-section h2{font-size:1.3rem;font-weight:700;margin-bottom:8px;color:var(--text-primary)}.welcome-section p{font-size:.88rem;color:var(--text-muted);max-width:340px;line-height:1.6;margin-bottom:28px}.welcome-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:400px}.welcome-chip{background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);padding:10px 18px;border-radius:var(--radius-md);font-size:.84rem;font-family:var(--font-body);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px;box-shadow:var(--shadow-sm)}.welcome-chip:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-glow);transform:translateY(-2px);box-shadow:var(--shadow-md)}.welcome-chip .chip-emoji{font-size:1rem}@media (max-width:480px){.header{padding:12px 16px}.chat-area{padding:16px 14px}.input-area{padding:10px 14px 16px}.message-bubble{max-width:88%;font-size:.88rem}.welcome-section{padding:24px 16px 16px}.welcome-section h2{font-size:1.15rem}}