:root{--primary: #2571cb;--primary-light: #3682d9;--secondary: #667eea;--error: #e74c3c;--text: #1a1a1a;--text-light: #999;--bg: #ffffff;--surface: #ececec;--border: #d1d5db;--space: 10px;--space-sm: calc(var(--space) * .2);--space-md: calc(var(--space) * .5);--space-lg: calc(var(--space) * 1.5);--space-xl: calc(var(--space) * 2)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:1rem;color:var(--text);background:var(--bg);line-height:1.5}.padding-none{padding:0}.padding-sm{padding:var(--space-sm)}.padding-md{padding:var(--space-md)}.padding{padding:var(--space)}.padding-lg{padding:var(--space-lg)}.padding-xl{padding:var(--space-xl)}.padding-x-none{padding-left:0;padding-right:0}.padding-x-sm{padding-left:var(--space-sm);padding-right:var(--space-sm)}.padding-x-md{padding-left:var(--space-md);padding-right:var(--space-md)}.padding-x{padding-left:var(--space);padding-right:var(--space)}.padding-x-lg{padding-left:var(--space-lg);padding-right:var(--space-lg)}.padding-x-xl{padding-left:var(--space-xl);padding-right:var(--space-xl)}.padding-y-none{padding-top:0;padding-bottom:0}.padding-y-sm{padding-top:var(--space-sm);padding-bottom:var(--space-sm)}.padding-y-md{padding-top:var(--space-md);padding-bottom:var(--space-md)}.padding-y{padding-top:var(--space);padding-bottom:var(--space)}.padding-y-lg{padding-top:var(--space-lg);padding-bottom:var(--space-lg)}.padding-y-xl{padding-top:var(--space-xl);padding-bottom:var(--space-xl)}.padding-top-none{padding-top:0}.padding-top-sm{padding-top:var(--space-sm)}.padding-top-md{padding-top:var(--space-md)}.padding-top{padding-top:var(--space)}.padding-top-lg{padding-top:var(--space-lg)}.padding-top-xl{padding-top:var(--space-xl)}.padding-bottom-none{padding-bottom:0}.padding-bottom-sm{padding-bottom:var(--space-sm)}.padding-bottom-md{padding-bottom:var(--space-md)}.padding-bottom{padding-bottom:var(--space)}.padding-bottom-lg{padding-bottom:var(--space-lg)}.padding-bottom-xl{padding-bottom:var(--space-xl)}.padding-left-none{padding-left:0}.padding-left-sm{padding-left:var(--space-sm)}.padding-left-md{padding-left:var(--space-md)}.padding-left{padding-left:var(--space)}.padding-left-lg{padding-left:var(--space-lg)}.padding-left-xl{padding-left:var(--space-xl)}.padding-right-none{padding-right:0}.padding-right-sm{padding-right:var(--space-sm)}.padding-right-md{padding-right:var(--space-md)}.padding-right{padding-right:var(--space)}.padding-right-lg{padding-right:var(--space-lg)}.padding-right-xl{padding-right:var(--space-xl)}.margin-none{margin:0}.margin-sm{margin:var(--space-sm)}.margin-md{margin:var(--space-md)}.margin{margin:var(--space)}.margin-lg{margin:var(--space-lg)}.margin-xl{margin:var(--space-xl)}.margin-x-none{margin-left:0;margin-right:0}.margin-x-sm{margin-left:var(--space-sm);margin-right:var(--space-sm)}.margin-x-md{margin-left:var(--space-md);margin-right:var(--space-md)}.margin-x{margin-left:var(--space);margin-right:var(--space)}.margin-x-lg{margin-left:var(--space-lg);margin-right:var(--space-lg)}.margin-x-xl{margin-left:var(--space-xl);margin-right:var(--space-xl)}.margin-y-none{margin-top:0;margin-bottom:0}.margin-y-sm{margin-top:var(--space-sm);margin-bottom:var(--space-sm)}.margin-y-md{margin-top:var(--space-md);margin-bottom:var(--space-md)}.margin-y{margin-top:var(--space);margin-bottom:var(--space)}.margin-y-lg{margin-top:var(--space-lg);margin-bottom:var(--space-lg)}.margin-y-xl{margin-top:var(--space-xl);margin-bottom:var(--space-xl)}.margin-top-none{margin-top:0}.margin-top-sm{margin-top:var(--space-sm)}.margin-top-md{margin-top:var(--space-md)}.margin-top{margin-top:var(--space)}.margin-top-lg{margin-top:var(--space-lg)}.margin-top-xl{margin-top:var(--space-xl)}.margin-bottom-none{margin-bottom:0}.margin-bottom-sm{margin-bottom:var(--space-sm)}.margin-bottom-md{margin-bottom:var(--space-md)}.margin-bottom{margin-bottom:var(--space)}.margin-bottom-lg{margin-bottom:var(--space-lg)}.margin-bottom-xl{margin-bottom:var(--space-xl)}.margin-left-none{margin-left:0}.margin-left-sm{margin-left:var(--space-sm)}.margin-left-md{margin-left:var(--space-md)}.margin-left{margin-left:var(--space)}.margin-left-lg{margin-left:var(--space-lg)}.margin-left-xl{margin-left:var(--space-xl)}.margin-right-none{margin-right:0}.margin-right-sm{margin-right:var(--space-sm)}.margin-right-md{margin-right:var(--space-md)}.margin-right{margin-right:var(--space)}.margin-right-lg{margin-right:var(--space-lg)}.margin-right-xl{margin-right:var(--space-xl)}.gap-none{gap:0}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap{gap:var(--space)}.gap-lg{gap:var(--space-lg)}.gap-xl{gap:var(--space-xl)}.display-flex{display:flex}.display-flex-col{display:flex;flex-direction:column}.display-flex-row{display:flex;flex-direction:row}.display-flex-wrap{display:flex;flex-wrap:wrap}.display-flex-nowrap{display:flex;flex-wrap:nowrap}.flex-grow{flex:1}.flex-shrink{flex-shrink:1}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.items-baseline{align-items:baseline}.items-auto{align-items:auto}.items-self-start{align-items:self-start}.items-self-end{align-items:self-end}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.width-full{width:100%}.width-fit-content{width:fit-content}.height-full{height:100%}.height-screen{height:100vh}.text-center{text-align:center}.text-light{color:var(--text-light)}.text-white{color:#fff}.color-danger{color:var(--error)}.font-bold{font-weight:500}.bg-primary{background:var(--primary)}.bg-surface{background:var(--surface)}.bg-white{background:var(--bg)}.bg-error{background:#fadbd8}.border{border:1px solid var(--border)}.border-none{border:none}.rounded{border-radius:8px}.rounded-sm{border-radius:4px}.rounded-full{border-radius:9999px}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.position-relative{position:relative}.position-fixed{position:fixed}.position-absolute{position:absolute}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.shadow{box-shadow:0 4px 6px #0000001a}.opacity-50{opacity:.5}.transition{transition:all .15s ease-in-out}button{cursor:pointer;font-family:inherit;transition:all .15s ease-in-out}.btn{border:none;border-radius:8px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:all .15s ease-in-out}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-light);box-shadow:0 4px 6px #0000001a}.btn-error{background:var(--error);color:#fff}.btn-error:hover{background:#c0392b;box-shadow:0 4px 6px #0000001a}.btn-default{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-default:hover:not(:disabled){background:#d9d9d9;box-shadow:0 4px 6px #0000001a}.btn:disabled{opacity:.5;cursor:not-allowed}textarea,input{font-family:inherit;font-size:1rem}.textarea{flex:1;padding:var(--space);border:1px solid var(--border);border-radius:8px;resize:none;overflow-y:auto;height:44px;max-height:400px;line-height:1.5;transition:border-color .15s ease-in-out}.textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #10a37f1a}.textarea::placeholder{color:var(--text-light)}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-8px)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.animate-slide-in{animation:slideIn .15s ease-in-out}.animate-bounce{animation:bounce 1.4s infinite}.animate-slide-in-right{animation:slideInRight .3s ease-in-out}.message{display:flex;gap:var(--space);animation:slideIn .15s ease-in-out;margin-bottom:var(--space-lg)}.message.user{flex-direction:column;align-items:flex-end;gap:0}.message.assistant{display:grid;grid-template-columns:50px 1fr;grid-template-rows:auto auto;gap:0 var(--space);align-items:start}.message.assistant .message-avatar{grid-row:1;grid-column:1;align-self:flex-end}.message.assistant .message-bubble{grid-row:1;grid-column:2;align-self:end}.message.assistant .message-meta{grid-row:2;grid-column:2;align-self:start;margin-top:0}.message-content{width:fit-content;max-width:70%;padding:var(--space) var(--space-lg);border-radius:8px;word-wrap:break-word}.message.user .message-content{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.message.assistant .message-content{background:var(--surface);color:var(--text);border-bottom-left-radius:4px;border:1px solid #e0e0e0}.message-avatar{width:50px;height:60px;border-radius:50%;object-fit:cover;flex-shrink:0;align-self:flex-end}.message-bubble{position:relative;flex:1}.message.assistant .message-bubble:before{content:"";position:absolute;left:-12px;bottom:8px;width:0;height:0;border-top:8px solid transparent;border-right:12px solid #e0e0e0;border-bottom:8px solid transparent}.message.assistant .message-bubble .message-content:before{content:"";position:absolute;left:-9px;bottom:8px;width:0;height:0;border-top:8px solid transparent;border-right:9px solid var(--surface);border-bottom:8px solid transparent}.message.assistant .message-bubble .message-content{position:relative}.message-meta{font-size:.875rem;color:var(--text-light)}.loading-dots{display:flex;gap:var(--space-sm);position:relative}.loading-dot{width:8px;height:8px;border-radius:50%;background:currentColor;animation:bounce 1.4s infinite}.loading-dot:nth-child(1){animation-delay:0s}.loading-dot:nth-child(2){animation-delay:.2s}.loading-dot:nth-child(3){animation-delay:.4s}.alert{position:fixed;top:var(--space-lg);right:var(--space-lg);padding:var(--space-lg);border-radius:8px;box-shadow:0 10px 15px #0000001a;display:flex;align-items:center;gap:var(--space);z-index:999;animation:slideInRight .3s ease-in-out;max-width:400px}.alert-error{background:#fadbd8;color:var(--error);border-left:4px solid var(--error)}.alert-close{background:none;border:none;color:inherit;font-size:1.5rem;cursor:pointer;padding:0;margin-left:auto}.welcome-message{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space);color:var(--text-light);text-align:center;margin:auto;padding:var(--space-xl)}.welcome-icon{font-size:3rem;opacity:.7}.welcome-message h2{font-size:1.125rem;color:var(--text)}.welcome-message p{max-width:300px;font-size:.875rem}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ccc;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#aaa}.message-content h1,.message-content h2,.message-content h3,.message-content h4,.message-content h5,.message-content h6{margin-top:var(--space);margin-bottom:var(--space-md);font-weight:600;line-height:1.3}.message-content h1{font-size:1.5rem}.message-content h2{font-size:1.35rem}.message-content h3{font-size:1.25rem}.message-content h4{font-size:1.1rem}.message-content h5{font-size:1rem}.message-content h6{font-size:.95rem}.message-content p{margin-bottom:var(--space-md)}.message-content ul,.message-content ol{margin-left:var(--space-lg);margin-bottom:var(--space-md);padding-left:var(--space)}.message-content li{margin-bottom:var(--space-sm)}.message-content strong{font-weight:600;color:var(--text)}.message-content em{font-style:italic}.message-content code{background:var(--surface);padding:.2em .4em;border-radius:3px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9em}.message-content pre{background:var(--surface);padding:var(--space);border-radius:4px;overflow-x:auto;margin-bottom:var(--space-md)}.message-content pre code{background:transparent;padding:0;border-radius:0}.message-content blockquote{border-left:3px solid var(--primary);padding-left:var(--space);margin-left:0;margin-bottom:var(--space-md);color:var(--text-light)}.message-content a{color:var(--primary);text-decoration:none;transition:color .2s}.message-content a:hover{color:var(--primary-light);text-decoration:underline}@media(max-width:768px){.message-content{max-width:85%}.alert{width:calc(100% - var(--space-lg) * 2);right:var(--space-lg);left:var(--space-lg)}}@media(max-width:480px){.message-content{max-width:100%}}
