body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,#f0fdf4,#dcfce7);color:#1e293b;margin:0;padding:0;transition:all .3s ease;min-height:100vh;overflow:hidden}body.dark-mode{background:linear-gradient(135deg,#0f172a,#020617);color:#e2e8f0}.app-container{max-width:900px;margin:0 auto;padding:0;display:flex;flex-direction:column;height:100vh;background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 0 50px #00000014}body.dark-mode .app-container{background:#0f172af2}.app-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,.06);flex-shrink:0;z-index:100}body.dark-mode .app-header{background:#0f172af2;border-bottom:1px solid rgba(16,185,129,.2)}.header-content h1{font-size:1.8rem;font-weight:800;background:linear-gradient(135deg,#059669,#10b981);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0}body.dark-mode .header-content h1{background:linear-gradient(135deg,#10b981,#34d399);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-subtitle{font-size:.9rem;color:#047857;margin:.25rem 0 0;font-weight:500}body.dark-mode .header-subtitle{color:#6ee7b7}.btn-theme-toggle{font-size:1.5rem;background:#f0fdf4cc;border:1px solid rgba(0,0,0,.08);border-radius:50%;width:45px;height:45px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.btn-theme-toggle:hover{transform:rotate(180deg);background:#f0fdf4;border-color:#0000001f}body.dark-mode .btn-theme-toggle{background:#10b9811a;border:1px solid rgba(16,185,129,.3)}body.dark-mode .btn-theme-toggle:hover{background:#10b98133;border-color:#10b98166}.main-content{flex:1;display:flex;flex-direction:column;position:relative;min-height:0}.chat-container{flex:1;padding:1rem 2rem;overflow-y:auto;min-height:0;scroll-behavior:smooth}.welcome-message{text-align:center;padding:3rem 1rem;max-width:500px;margin:0 auto}.welcome-icon{font-size:4rem;margin-bottom:1rem;animation:bounce 2s infinite}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.welcome-message h2{font-size:2rem;font-weight:700;margin-bottom:1rem;color:#065f46}body.dark-mode .welcome-message h2{color:#d1fae5}.welcome-message p{font-size:1.1rem;color:#047857;line-height:1.6}body.dark-mode .welcome-message p{color:#6ee7b7}.chat-messages{display:flex;flex-direction:column;gap:1.5rem;padding-bottom:1rem}.chat-message{display:flex;gap:1rem;max-width:100%;animation:fadeInUp .3s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chat-user{flex-direction:row-reverse}.message-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;background:linear-gradient(135deg,#059669,#10b981);color:#fff;box-shadow:0 4px 12px #05966933}.chat-user .message-avatar{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 12px #10b9814d}.message-content{flex:1;max-width:80%}.chat-user .message-content{text-align:right}.message-content>div{padding:1rem 1.5rem;border-radius:1.5rem;box-shadow:0 4px 12px #0000000f;line-height:1.6;font-size:1rem}.chat-assistant .message-content>div{background:#f0fdf4;color:#065f46;border-bottom-left-radius:.5rem;border:1px solid rgba(5,150,105,.1)}body.dark-mode .chat-assistant .message-content>div{background:#0f172a;color:#d1fae5;border:1px solid rgba(16,185,129,.2)}.chat-user .message-content>div{background:linear-gradient(135deg,#059669,#10b981);color:#fff;border-bottom-right-radius:.5rem}.loading-indicator{display:flex;align-items:center;gap:1rem}.loading-dots{display:flex;gap:.25rem}.loading-dots span{width:8px;height:8px;border-radius:50%;background:#10b981;animation:loading 1.4s infinite ease-in-out}body.dark-mode .loading-dots span{background:#34d399}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}@keyframes loading{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.search-container{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(0,0,0,.06);padding:1rem 2rem;flex-shrink:0;z-index:100}body.dark-mode .search-container{background:#0f172af2;border-top:1px solid rgba(16,185,129,.2)}.search-form{max-width:600px;margin:0 auto}.search-input-wrapper{display:flex;align-items:center;background:#fff;border:2px solid #d1fae5;border-radius:2rem;padding:.5rem;box-shadow:0 4px 20px #0000000f;transition:all .3s ease}body.dark-mode .search-input-wrapper{background:#1e293b;border-color:#10b9814d}.search-input-wrapper:focus-within{border-color:#059669;box-shadow:0 4px 20px #05966926}body.dark-mode .search-input-wrapper:focus-within{border-color:#34d399;box-shadow:0 4px 20px #34d39933}.search-input{flex:1;padding:.75rem 1rem;font-size:1rem;border:none;outline:none;background:transparent;color:#065f46}body.dark-mode .search-input{color:#d1fae5}.search-input::-moz-placeholder{color:#6b7280}.search-input::placeholder{color:#6b7280}body.dark-mode .search-input::-moz-placeholder{color:#64748b}body.dark-mode .search-input::placeholder{color:#64748b}.search-button{width:45px;height:45px;border-radius:50%;border:none;background:linear-gradient(135deg,#059669,#10b981);color:#fff;font-size:1.2rem;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #05966933}body.dark-mode .search-button{background:linear-gradient(135deg,#10b981,#34d399);box-shadow:0 4px 12px #10b9814d}.search-button:hover:not(:disabled){transform:scale(1.05);box-shadow:0 6px 20px #0596694d}body.dark-mode .search-button:hover:not(:disabled){box-shadow:0 6px 20px #10b98166}.search-button:disabled{background:#cbd5e1;cursor:not-allowed;transform:none;box-shadow:none}.button-loading{width:20px;height:20px;border:2px solid transparent;border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-container{padding:1rem 2rem;text-align:center;flex-shrink:0}.error-msg{color:#dc2626;font-weight:500;background:#dc262614;padding:.75rem 1rem;border-radius:.75rem;border:1px solid rgba(220,38,38,.15)}body.dark-mode .error-msg{background:#dc262626;border-color:#dc262640}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;margin-top:1.25rem}.image-card{display:flex;flex-direction:column;background:#fff;border-radius:1rem;box-shadow:0 4px 12px #0000000f;text-align:center;font-size:.9rem;color:#065f46;overflow:hidden;transition:all .3s ease;text-decoration:none;border:1px solid rgba(5,150,105,.1)}body.dark-mode .image-card{background:#1e293b;color:#d1fae5;border-color:#10b98133}.image-card img{width:100%;height:100px;-o-object-fit:cover;object-fit:cover}.image-card p{padding:.75rem;margin:0;font-weight:500}.image-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px #0000001a}.reference-block{margin-top:1rem;padding:1rem 1.5rem;background:#0596690a;border-radius:1rem;border:1px solid rgba(5,150,105,.1)}body.dark-mode .reference-block{background:#10b98114;border-color:#10b98133}.reference-block h4{margin-bottom:.75rem;font-size:1rem;font-weight:600;color:#065f46}body.dark-mode .reference-block h4{color:#d1fae5}.reference-block ul{padding-left:1.2rem;margin:0}.reference-block li{margin-bottom:.5rem;word-break:break-word}.reference-block a{color:#059669;text-decoration:none;font-weight:500;transition:color .3s ease}.reference-block a:hover{color:#047857;text-decoration:underline}body.dark-mode .reference-block a{color:#34d399}body.dark-mode .reference-block a:hover{color:#6ee7b7}.app-footer{text-align:center;padding:.75rem 2rem;font-size:.85rem;color:#047857;background:#fff9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-shrink:0}body.dark-mode .app-footer{color:#6ee7b7;background:#0f172acc}@media (max-width: 768px){.app-container{margin:0;border-radius:0}.app-header{padding:1rem}.header-content h1{font-size:1.5rem}.chat-container,.search-container{padding:1rem}.message-content{max-width:90%}.welcome-message{padding:2rem 1rem}.welcome-message h2{font-size:1.5rem}}.message-content h1,.message-content h2,.message-content h3,.message-content h4,.message-content h5,.message-content h6{margin-top:1.5rem;margin-bottom:.75rem;font-weight:600;line-height:1.3}.message-content p{margin-bottom:1rem}.message-content ul,.message-content ol{margin-bottom:1rem;padding-left:1.5rem}.message-content li{margin-bottom:.25rem}.message-content code{background:#0000001a;padding:.2rem .4rem;border-radius:.25rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9em}body.dark-mode .message-content code{background:#ffffff1a}.message-content pre{background:#0000000d;padding:1rem;border-radius:.5rem;overflow-x:auto;margin:1rem 0}body.dark-mode .message-content pre{background:#ffffff0d}.message-content pre code{background:none;padding:0}.message-content blockquote{border-left:4px solid #667eea;padding-left:1rem;margin:1rem 0;font-style:italic;color:#6b7280}body.dark-mode .message-content blockquote{color:#94a3b8}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:#f0f2f5;color:#222;transition:background-color .3s ease,color .3s ease}a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}h1,h2{margin:0}.error-msg{color:#dc2626;margin-top:1rem}.error-boundary{border:1px solid #dc2626;background-color:#fee2e2;padding:1rem;border-radius:.5rem;color:#b91c1c}body.dark-mode{background-color:#121212;color:#ddd}body.dark-mode a{color:#60a5fa}
