*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}body{min-height:100dvh;font-family:Maven Pro,system-ui,-apple-system,Segoe UI,sans-serif;font-weight:400;line-height:1.6;transition:background-color .4s,color .4s;overflow:hidden}:root[data-theme=light]{--color-primary:#741f6d;--color-primary-light:#9b3f94;--color-primary-dark:#5a1854;--color-primary-rgb:116, 31, 109;--color-secondary:#54595f;--color-accent:#127679;--color-accent-light:#1a9c9f;--color-accent-rgb:18, 118, 121;--color-text:#361738;--color-text-muted:#6b6b7b;--color-text-inverse:#fff;--color-surface:#fff;--color-surface-alt:#f8f5f9;--color-surface-elevated:#fff;--color-surface-glass:#ffffffb8;--color-border:#741f6d1a;--color-border-strong:#741f6d33;--color-user-bubble:#741f6d;--color-user-text:#fff;--color-bot-bubble:#f3edf3;--color-bot-text:#361738;--color-chip-bg:#741f6d14;--color-chip-hover:#741f6d29;--color-chip-text:#741f6d;--color-input-bg:#f8f5f9;--color-input-border:#741f6d26;--color-input-focus:#741f6d;--color-error:#d32f2f;--color-success:#2e7d32;--color-warning:#ed6c02;--gradient-header:linear-gradient(135deg, #741f6d 0%, #5a1854 50%, #3d1039 100%);--gradient-welcome:linear-gradient(135deg, #741f6d0a 0%, #1276790a 100%);--gradient-glow:radial-gradient(ellipse at 50% 0%, #741f6d14 0%, transparent 70%);--shadow-sm:0 1px 3px #3617380f;--shadow-md:0 4px 12px #36173814;--shadow-lg:0 8px 32px #3617381f;--shadow-glow:0 0 24px #741f6d26;--shadow-float:0 12px 40px #36173826;--blur-glass:16px}:root[data-theme=dark]{--color-primary:#b35fad;--color-primary-light:#cf8ac8;--color-primary-dark:#8a3c83;--color-primary-rgb:179, 95, 173;--color-secondary:#9ca3af;--color-accent:#2dd4d8;--color-accent-light:#5be5e8;--color-accent-rgb:45, 212, 216;--color-text:#ede8ee;--color-text-muted:#9b8f9d;--color-text-inverse:#1a1022;--color-surface:#1a1022;--color-surface-alt:#231330;--color-surface-elevated:#2d1a3a;--color-surface-glass:#1a1022d1;--color-border:#b35fad26;--color-border-strong:#b35fad40;--color-user-bubble:#8a3c83;--color-user-text:#fff;--color-bot-bubble:#2d1a3a;--color-bot-text:#ede8ee;--color-chip-bg:#b35fad1f;--color-chip-hover:#b35fad3d;--color-chip-text:#cf8ac8;--color-input-bg:#231330;--color-input-border:#b35fad33;--color-input-focus:#b35fad;--color-error:#ef5350;--color-success:#66bb6a;--color-warning:#ffa726;--gradient-header:linear-gradient(135deg, #2d1a3a 0%, #1a1022 50%, #120a18 100%);--gradient-welcome:linear-gradient(135deg, #b35fad0f 0%, #2dd4d80f 100%);--gradient-glow:radial-gradient(ellipse at 50% 0%, #b35fad1a 0%, transparent 70%);--shadow-sm:0 1px 3px #0003;--shadow-md:0 4px 12px #0000004d;--shadow-lg:0 8px 32px #0006;--shadow-glow:0 0 24px #b35fad33;--shadow-float:0 12px 40px #00000073;--blur-glass:20px}:root{--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:100px;--radius-full:50%;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1)}.app-shell{background-color:var(--color-surface);height:100dvh;color:var(--color-text);flex-direction:column;display:flex;position:relative;overflow:hidden}.app-shell:before{content:"";background:var(--gradient-glow);pointer-events:none;z-index:0;height:300px;position:absolute;top:0;left:0;right:0}.chat-header{padding:var(--space-md) var(--space-lg);background:var(--gradient-header);color:#fff;z-index:10;min-height:64px;box-shadow:var(--shadow-md);flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:relative}.header-left{align-items:center;gap:var(--space-md);display:flex}.header-logo{object-fit:contain;width:auto;height:48px}.header-center{flex-direction:column;align-items:center;display:flex}.header-title{letter-spacing:.01em;font-family:Maven Pro,sans-serif;font-size:1.125rem;font-weight:600}.header-subtitle{opacity:.7;font-size:.7rem;font-weight:400}.header-right{align-items:center;gap:var(--space-sm);display:flex}.info-strip{justify-content:center;align-items:center;gap:var(--space-lg);padding:var(--space-sm) var(--space-lg);background:var(--color-surface-alt);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);z-index:5;flex-shrink:0;font-size:.8rem;display:flex;position:relative}.info-item{align-items:center;gap:var(--space-xs);display:flex}.info-badge{border-radius:var(--radius-pill);align-items:center;gap:4px;padding:2px 10px;font-family:Prompt,sans-serif;font-size:.72rem;font-weight:500;display:inline-flex}.info-badge.open{color:var(--color-success);background:#2e7d321f}.info-badge.closed{color:var(--color-error);background:#d32f2f1f}.info-dot{border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite pulse}.info-dot.open{background:var(--color-success)}.info-dot.closed{background:var(--color-error)}.chat-area{padding:var(--space-lg);gap:var(--space-md);z-index:1;scroll-behavior:smooth;flex-direction:column;flex:1;display:flex;position:relative;overflow-y:auto}.chat-area::-webkit-scrollbar{width:6px}.chat-area::-webkit-scrollbar-track{background:0 0}.chat-area::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-pill)}.chat-area::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.welcome-card{max-width:600px;padding:var(--space-2xl) var(--space-xl);text-align:center;margin:auto;animation:.6s ease-out fadeSlideIn}.welcome-avatar{border-radius:var(--radius-full);background:var(--gradient-header);width:72px;height:72px;margin:0 auto var(--space-lg);color:#fff;box-shadow:var(--shadow-glow);justify-content:center;align-items:center;font-size:2rem;display:flex}.welcome-title{color:var(--color-text);margin-bottom:var(--space-sm);font-family:Maven Pro,sans-serif;font-size:1.5rem;font-weight:600}.welcome-subtitle{color:var(--color-text-muted);margin-bottom:var(--space-xl);max-width:480px;margin-left:auto;margin-right:auto;font-size:.95rem;line-height:1.7}.chips-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));max-width:520px;margin:0 auto;display:grid}.chip{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-chip-bg);color:var(--color-chip-text);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);text-align:left;font-family:Prompt,sans-serif;font-size:.82rem;font-weight:500;line-height:1.4;display:flex}.chip:hover{background:var(--color-chip-hover);border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.chip:active{transform:translateY(0)}.chip-icon{flex-shrink:0;font-size:1.1rem}.message-row{animation:.35s ease-out fadeSlideIn;display:flex}.message-row.user{justify-content:flex-end}.message-row.assistant{justify-content:flex-start}.message-bubble{max-width:75%;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-xl);word-wrap:break-word;overflow-wrap:break-word;position:relative}.message-row.user .message-bubble{background:var(--color-user-bubble);color:var(--color-user-text);border-bottom-right-radius:var(--space-xs)}.message-row.assistant .message-bubble{background:var(--color-bot-bubble);color:var(--color-bot-text);border-bottom-left-radius:var(--space-xs);box-shadow:var(--shadow-sm)}.message-content{font-size:.92rem;line-height:1.7}.message-content p{margin-bottom:.5em}.message-content p:last-child{margin-bottom:0}.message-content strong{font-weight:600}.message-content ul,.message-content ol{margin-bottom:.5em;padding-left:1.5em}.message-content li{margin-bottom:.25em}.message-content a{color:var(--color-accent);text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px}.message-row.user .message-content a{color:#ffffffe6}.message-content h1,.message-content h2,.message-content h3{margin-top:.75em;margin-bottom:.5em;font-family:Maven Pro,sans-serif;font-weight:600}.message-content h1:first-child,.message-content h2:first-child,.message-content h3:first-child{margin-top:0}.message-content h1{font-size:1.1rem}.message-content h2{font-size:1rem}.message-content h3{font-size:.95rem}.message-content table{border-collapse:collapse;width:100%;margin:.5em 0;font-size:.85rem}.message-content th,.message-content td{border:1px solid var(--color-border-strong);text-align:left;padding:6px 10px}.message-content th{background:var(--color-chip-bg);font-weight:600}.message-content code{background:var(--color-chip-bg);border-radius:4px;padding:2px 6px;font-size:.85em}.message-timestamp{opacity:.5;margin-top:var(--space-xs);font-size:.68rem}.message-row.user .message-timestamp{text-align:right}.message-sources{gap:var(--space-xs);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.source-tag{background:var(--color-chip-bg);color:var(--color-accent);border-radius:var(--radius-pill);align-items:center;gap:4px;padding:2px 8px;font-family:Prompt,sans-serif;font-size:.68rem;font-weight:500;display:inline-flex}.source-tag:before{content:"🔗";font-size:.65rem}.typing-indicator-row{justify-content:flex-start;animation:.3s ease-out fadeSlideIn;display:flex}.typing-indicator{align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--color-bot-bubble);border-radius:var(--radius-xl);border-bottom-left-radius:var(--space-xs);box-shadow:var(--shadow-sm);display:flex}.typing-dots{gap:4px;display:flex}.typing-dot{background:var(--color-text-muted);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite bounceTyping}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}.typing-label{color:var(--color-text-muted);font-size:.75rem;font-style:italic}.input-dock{padding:var(--space-md) var(--space-lg);background:var(--color-surface-glass);-webkit-backdrop-filter:blur(var(--blur-glass));border-top:1px solid var(--color-border);z-index:10;flex-shrink:0;position:relative}.input-row{align-items:flex-end;gap:var(--space-sm);max-width:800px;margin:0 auto;display:flex}.input-wrapper{flex:1;position:relative}.chat-input{width:100%;padding:var(--space-md) var(--space-lg);background:var(--color-input-bg);border:1.5px solid var(--color-input-border);border-radius:var(--radius-xl);color:var(--color-text);resize:none;min-height:48px;max-height:160px;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;font-family:Maven Pro,sans-serif;font-size:.92rem;line-height:1.5;overflow-y:auto}.chat-input::placeholder{color:var(--color-text-muted)}.chat-input:focus{border-color:var(--color-input-focus);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb), .12)}.send-button{border-radius:var(--radius-full);background:var(--color-primary);color:#fff;cursor:pointer;width:48px;height:48px;transition:all var(--transition-normal);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.send-button:hover:not(:disabled){background:var(--color-primary-dark);box-shadow:var(--shadow-glow);transform:scale(1.05)}.send-button:active:not(:disabled){transform:scale(.95)}.send-button:disabled{opacity:.4;cursor:not-allowed}.send-button svg{width:20px;height:20px}.disclaimer-text{text-align:center;color:var(--color-text-muted);margin-top:var(--space-sm);opacity:.7;font-size:.7rem;font-style:italic}.theme-toggle{border-radius:var(--radius-sm);color:#fff;cursor:pointer;width:36px;height:36px;transition:all var(--transition-fast);background:#ffffff1a;border:1px solid #fff3;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.theme-toggle:hover{background:#fff3;transform:scale(1.08)}.language-selector{position:relative}.language-button{border-radius:var(--radius-sm);color:#fff;cursor:pointer;transition:all var(--transition-fast);background:#ffffff1a;border:1px solid #fff3;align-items:center;gap:6px;padding:6px 12px;font-family:Maven Pro,sans-serif;font-size:.8rem;font-weight:500;display:flex}.language-button:hover{background:#fff3}.language-dropdown{background:var(--color-surface-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);min-width:160px;box-shadow:var(--shadow-lg);z-index:100;animation:.2s ease-out fadeSlideIn;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}.language-option{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);cursor:pointer;color:var(--color-text);transition:background var(--transition-fast);background:0 0;border:none;width:100%;font-family:Maven Pro,sans-serif;font-size:.85rem;display:flex}.language-option:hover{background:var(--color-chip-bg)}.language-option.active{background:var(--color-chip-bg);color:var(--color-primary);font-weight:600}.language-flag{font-size:1.2rem}.error-bubble{border:1px solid #d32f2f33;background:#d32f2f14!important}.error-bubble .message-content{color:var(--color-error)}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes bounceTyping{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-6px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@media (max-width:768px){.chat-header{padding:var(--space-sm) var(--space-md);min-height:56px}.header-logo{width:32px;height:32px}.header-title{font-size:1rem}.info-strip{padding:var(--space-xs) var(--space-md);gap:var(--space-md);flex-wrap:wrap;font-size:.72rem}.chat-area{padding:var(--space-md)}.welcome-card{padding:var(--space-xl) var(--space-md)}.welcome-title{font-size:1.25rem}.welcome-subtitle{font-size:.88rem}.chips-grid{grid-template-columns:1fr 1fr}.chip{padding:var(--space-sm) var(--space-sm);font-size:.78rem}.message-bubble{max-width:85%;padding:var(--space-sm) var(--space-md)}.input-dock{padding:var(--space-sm) var(--space-md)}.chat-input{padding:var(--space-sm) var(--space-md);min-height:42px;font-size:.88rem}.send-button{width:42px;height:42px}.language-button span:last-child{display:none}}@media (max-width:480px){.header-center{display:none}.chips-grid{grid-template-columns:1fr}.info-strip{gap:var(--space-sm)}.welcome-avatar{width:56px;height:56px;font-size:1.5rem}}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.chip:focus-visible,.send-button:focus-visible,.theme-toggle:focus-visible,.language-button:focus-visible{outline-offset:2px;outline:2px solid #fff}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
