.app{position:relative;min-height:100vh;display:flex;flex-direction:column;overflow:hidden}.bg-gradient{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 20%,rgba(26,99,119,.15) 0%,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(255,107,107,.08) 0%,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(13,59,68,.3) 0%,transparent 70%);pointer-events:none;z-index:0}.bg-grid{position:fixed;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:60px 60px;pointer-events:none;z-index:0}.header{position:relative;z-index:10;padding:var(--space-md) var(--space-xl);background:#141c22cc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.06)}.header-content{max-width:900px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:center;gap:var(--space-sm)}.logo-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-600),var(--primary-700));border-radius:var(--radius-md);color:#fff}.logo-icon svg{width:20px;height:20px}.logo-text{font-size:1.25rem;font-weight:700;background:linear-gradient(135deg,var(--neutral-100),var(--primary-300));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-badge{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:var(--space-xs) var(--space-sm);background:#ff6b6b26;color:var(--accent-400);border-radius:var(--radius-full);border:1px solid rgba(255,107,107,.2)}.chat-container{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;max-width:900px;width:100%;margin:0 auto;padding:var(--space-lg) var(--space-xl);overflow:hidden}.messages-wrapper{flex:1;overflow-y:auto;padding-bottom:var(--space-lg);-webkit-mask-image:linear-gradient(to bottom,transparent,black 20px,black calc(100% - 20px),transparent);mask-image:linear-gradient(to bottom,transparent,black 20px,black calc(100% - 20px),transparent)}.messages{display:flex;flex-direction:column;gap:var(--space-lg)}.message{display:flex;gap:var(--space-md);animation:fadeIn var(--transition-base) ease-out forwards;opacity:0}.message.user{flex-direction:row-reverse}.message-avatar{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);color:#fff}.message.assistant .message-avatar{background:linear-gradient(135deg,var(--primary-600),var(--primary-700))}.message.user .message-avatar{background:linear-gradient(135deg,var(--neutral-600),var(--neutral-700))}.message-avatar svg{width:22px;height:22px}.message-content{max-width:75%;display:flex;flex-direction:column;gap:var(--space-xs)}.message.user .message-content{align-items:flex-end}.message-header{display:flex;align-items:center;gap:var(--space-sm);font-size:.8rem}.message.user .message-header{flex-direction:row-reverse}.message-sender{font-weight:600;color:var(--neutral-300)}.message-source{font-size:.7rem;padding:2px 8px;border-radius:var(--radius-full);font-weight:500}.message-source.predefined{background:#10b98126;color:var(--success)}.message-source.openai{background:#8b5cf626;color:#a78bfa}.message-text{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-lg);line-height:1.6;font-size:.95rem}.message.assistant .message-text{background:#1e2a33cc;border:1px solid rgba(255,255,255,.06);color:var(--neutral-100);border-top-left-radius:var(--radius-sm)}.message.user .message-text{background:linear-gradient(135deg,var(--primary-600),var(--primary-700));color:#fff;border-top-right-radius:var(--radius-sm)}.typing-indicator{display:flex;gap:4px;padding:var(--space-md) var(--space-lg);background:#1e2a33cc;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-lg);border-top-left-radius:var(--radius-sm)}.typing-indicator span{width:8px;height:8px;background:var(--primary-400);border-radius:50%;animation:typing 1.4s infinite ease-in-out}.typing-indicator span:nth-child(1){animation-delay:0s}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}.quick-questions{padding:var(--space-lg) 0}.quick-questions-label{font-size:.85rem;color:var(--neutral-400);margin-bottom:var(--space-sm)}.quick-questions-list{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.quick-question-btn{padding:var(--space-sm) var(--space-md);background:#1e2a3399;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-full);color:var(--neutral-200);font-size:.875rem;font-weight:500;transition:all var(--transition-fast)}.quick-question-btn:hover:not(:disabled){background:#2a8da933;border-color:var(--primary-500);color:var(--primary-300);transform:translateY(-1px)}.quick-question-btn:disabled{opacity:.5;cursor:not-allowed}.error-banner{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:#fca5a5;font-size:.875rem;margin-bottom:var(--space-md)}.error-banner svg{width:18px;height:18px;flex-shrink:0}.error-dismiss{margin-left:auto;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:#fca5a5;font-size:1.25rem;transition:background var(--transition-fast)}.error-dismiss:hover{background:#ef444433}.input-area{position:relative;padding-top:var(--space-md)}.input-wrapper{display:flex;gap:var(--space-sm);padding:var(--space-sm);background:#1e2a33cc;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-xl);transition:all var(--transition-fast)}.input-wrapper:focus-within{border-color:var(--primary-500);box-shadow:0 0 0 3px #2a8da926}.chat-input{flex:1;padding:var(--space-md) var(--space-lg);background:transparent;color:var(--neutral-100);font-size:1rem}.chat-input::placeholder{color:var(--neutral-500)}.chat-input:disabled{opacity:.7}.send-btn{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:linear-gradient(135deg,var(--primary-500),var(--primary-600));border-radius:var(--radius-lg);color:#fff;transition:all var(--transition-fast)}.send-btn:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-400),var(--primary-500));transform:scale(1.05)}.send-btn:disabled{opacity:.5;cursor:not-allowed}.send-btn svg{width:20px;height:20px}.input-hint{text-align:center;font-size:.75rem;color:var(--neutral-500);margin-top:var(--space-sm)}@media (max-width: 768px){.header{padding:var(--space-sm) var(--space-md)}.chat-container{padding:var(--space-md)}.message-content{max-width:85%}.quick-questions-list{gap:var(--space-xs)}.quick-question-btn{font-size:.8rem;padding:var(--space-xs) var(--space-sm)}}:root{--primary-900: #0d3b44;--primary-800: #134e5e;--primary-700: #1a6377;--primary-600: #217891;--primary-500: #2a8da9;--primary-400: #45a3bd;--primary-300: #6dbdd2;--primary-200: #a0d5e4;--primary-100: #d4eef5;--primary-50: #eaf7fb;--accent-500: #ff6b6b;--accent-400: #ff8585;--accent-300: #ffa0a0;--neutral-950: #0a0f12;--neutral-900: #141c22;--neutral-800: #1e2a33;--neutral-700: #2d3d4a;--neutral-600: #3d5161;--neutral-500: #5a7185;--neutral-400: #7d92a3;--neutral-300: #a5b5c2;--neutral-200: #cdd6dd;--neutral-100: #e8ecef;--neutral-50: #f5f7f8;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--font-sans: "DM Sans", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--radius-sm: .375rem;--radius-md: .625rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--neutral-950);color:var(--neutral-100);line-height:1.6;min-height:100vh;overflow:hidden}#root{min-height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--neutral-900);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:var(--neutral-700);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--neutral-600)}::selection{background:var(--primary-600);color:#fff}:focus-visible{outline:2px solid var(--primary-500);outline-offset:2px}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea{font-family:inherit;border:none;background:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes typing{0%{opacity:.3}50%{opacity:1}to{opacity:.3}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-out}.animate-slide-up{animation:slideUp var(--transition-slow) ease-out}
