:root{--empire-red: #D52B1E;--empire-red-dark: #A8231A;--empire-red-light: #E85A50;--empire-red-glow: rgba(213, 43, 30, .25);--steel-blue: #4A6FA5;--steel-blue-light: #6B8FC5;--steel-blue-dark: #2E4A6E;--steel-blue-glow: rgba(74, 111, 165, .25);--construction-yellow: #FFB81C;--construction-yellow-muted: #E5A617;--construction-yellow-light: #FFCA4D;--construction-yellow-glow: rgba(255, 184, 28, .25);--blueprint-bg: #0A1628;--blueprint-bg-light: #0D1F35;--blueprint-lines: #1E3A5F;--blueprint-paper: #F5F7FA;--blueprint-paper-dark: #E8ECF1;--text-primary: #FFFFFF;--text-secondary: rgba(255, 255, 255, .7);--text-muted: rgba(255, 255, 255, .5);--text-dark: #1A1A2E;--text-dark-secondary: #4A5568;--success-green: #2E7D32;--success-green-light: #4CAF50;--warning-amber: #FF8F00;--error-red: #C62828;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .15);--shadow-md: 0 4px 20px rgba(0, 0, 0, .2);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .3);--shadow-glow-red: 0 0 30px var(--empire-red-glow);--shadow-glow-blue: 0 0 30px var(--steel-blue-glow);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease}*{margin:0;padding:0;box-sizing:border-box}body{font-family:IBM Plex Sans,DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:linear-gradient(90deg,var(--blueprint-lines) 1px,transparent 1px),linear-gradient(180deg,var(--blueprint-lines) 1px,transparent 1px),radial-gradient(ellipse at 0% 0%,var(--empire-red-glow) 0%,transparent 50%),radial-gradient(ellipse at 100% 100%,var(--steel-blue-glow) 0%,transparent 50%),radial-gradient(ellipse at 50% 30%,rgba(74,111,165,.12) 0%,transparent 60%),linear-gradient(165deg,var(--blueprint-bg) 0%,var(--blueprint-bg-light) 50%,var(--blueprint-bg) 100%);background-size:50px 50px,50px 50px,100% 100%,100% 100%,100% 100%,100% 100%;background-attachment:fixed;min-height:100vh;display:flex;justify-content:center;align-items:center;padding:20px;color:var(--text-primary)}#root{width:100%;display:flex;justify-content:center;align-items:center}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--blueprint-bg)}::-webkit-scrollbar-thumb{background:var(--steel-blue-dark);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--steel-blue)}::selection{background:var(--empire-red);color:#fff}.loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;gap:20px}.loading-spinner{width:60px;height:60px;border:4px solid var(--blueprint-lines);border-top:4px solid var(--empire-red);border-right:4px solid var(--construction-yellow);border-radius:50%;animation:spin 1s linear infinite;box-shadow:var(--shadow-glow-red)}.loading-container:after{content:"INITIALIZING SYSTEM...";font-size:11px;letter-spacing:3px;color:var(--text-muted);font-family:JetBrains Mono,monospace}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.container{width:100%;max-width:950px;background:linear-gradient(180deg,var(--blueprint-bg-light) 0%,var(--blueprint-bg) 100%);border-radius:var(--radius-xl);box-shadow:0 0 0 1px var(--steel-blue-dark),var(--shadow-lg),inset 0 1px #ffffff0d;overflow:hidden;display:flex;flex-direction:column;height:90vh;margin:0 auto;position:relative;animation:container-appear .6s cubic-bezier(.16,1,.3,1)}@keyframes container-appear{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.container:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--empire-red) 0%,var(--construction-yellow) 50%,var(--empire-red) 100%);z-index:10}.chat-container{display:flex;flex-direction:column}.header{background:linear-gradient(180deg,#0d1f35f2,#0a1628fa);color:var(--text-primary);padding:0;text-align:center;border-bottom:1px solid var(--blueprint-lines);position:relative}.header-top-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 24px;background:#0000004d;font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--text-muted);border-bottom:1px solid var(--blueprint-lines)}.project-badge{font-family:JetBrains Mono,Fira Code,monospace;color:var(--construction-yellow);display:flex;align-items:center;gap:8px}.project-badge:before{content:"◆";color:var(--empire-red)}.status-indicator{display:flex;align-items:center;gap:6px}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--success-green);animation:pulse-glow 2s ease-in-out infinite}@keyframes pulse-glow{0%,to{box-shadow:0 0 4px var(--success-green)}50%{box-shadow:0 0 12px var(--success-green-light)}}.header-main{display:flex;justify-content:space-between;align-items:center;padding:16px 24px}.header-title{display:flex;align-items:center;gap:14px}.header-icon{font-size:36px;filter:drop-shadow(0 2px 8px var(--empire-red-glow))}.header-text h1{font-family:Bebas Neue,Oswald,sans-serif;font-size:26px;font-weight:400;letter-spacing:2px;margin-bottom:2px;text-align:left;background:linear-gradient(90deg,var(--text-primary) 0%,var(--steel-blue-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-text p{font-size:12px;color:var(--text-secondary);text-align:left;letter-spacing:.5px}.header-controls{display:flex;align-items:center;gap:16px}.user-info{display:flex;align-items:center;gap:10px;padding:8px 14px;background:#4a6fa526;border:1px solid var(--blueprint-lines);border-radius:var(--radius-md)}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--steel-blue) 0%,var(--steel-blue-dark) 100%);display:flex;align-items:center;justify-content:center;font-size:14px}.user-name{font-size:13px;font-weight:500;color:var(--text-primary)}.questions-gauge{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#ffb81c14;border:1px solid rgba(255,184,28,.2);border-radius:var(--radius-md)}.gauge-label{font-size:9px;letter-spacing:1.5px;color:var(--construction-yellow);font-weight:600}.gauge-track{width:80px;height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.gauge-fill{height:100%;background:linear-gradient(90deg,var(--empire-red) 0%,var(--construction-yellow) 100%);border-radius:3px;transition:width .5s cubic-bezier(.16,1,.3,1)}.gauge-count{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text-primary);min-width:35px}.session-info{font-size:12px;opacity:.9;margin-top:10px;display:flex;align-items:center;justify-content:center;gap:10px}.logout-btn{background:#d52b1e26;border:1px solid rgba(213,43,30,.3);color:var(--empire-red-light);padding:8px 16px;border-radius:var(--radius-sm);cursor:pointer;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;transition:all var(--transition-fast);display:flex;align-items:center;gap:6px}.logout-btn:hover{background:var(--empire-red);border-color:var(--empire-red);color:#fff;box-shadow:var(--shadow-glow-red)}.logout-btn:before{content:"↩"}.questions-remaining{font-size:11px;background:#ffb81c26;border:1px solid rgba(255,184,28,.3);color:var(--construction-yellow);padding:6px 14px;border-radius:var(--radius-md);display:inline-flex;align-items:center;gap:8px;font-weight:500;transition:all var(--transition-normal)}.questions-remaining:before{content:"📊";font-size:12px}.chat-area{flex:1;overflow-y:auto;padding:24px;background:linear-gradient(180deg,#0a162800,#0a162880),radial-gradient(ellipse at 50% 0%,rgba(74,111,165,.05) 0%,transparent 50%)}.message{margin-bottom:24px;animation:message-appear .4s cubic-bezier(.16,1,.3,1)}@keyframes message-appear{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.message.user{text-align:right}.message-content{display:inline-block;max-width:75%;padding:14px 20px;border-radius:var(--radius-lg);line-height:1.7;font-size:14px;position:relative}.message.user .message-content{background:linear-gradient(135deg,var(--steel-blue) 0%,var(--steel-blue-dark) 100%);color:#fff;border-radius:var(--radius-lg) var(--radius-lg) 4px var(--radius-lg);border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow-md)}.message.user .message-content:before{content:"QUERY";position:absolute;top:-10px;right:14px;font-size:9px;letter-spacing:2px;color:var(--construction-yellow);background:var(--blueprint-bg);padding:3px 10px;border-radius:4px;border:1px solid var(--blueprint-lines);font-weight:600}.message.assistant .message-content{background:linear-gradient(180deg,#FFFFFF 0%,var(--blueprint-paper) 100%);color:var(--text-dark);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) 4px;border:1px solid #E5E8EC;border-left:4px solid var(--empire-red);box-shadow:var(--shadow-md)}.message.assistant .message-content:before{content:"📋 RESPONSE";position:absolute;top:-10px;left:14px;font-size:9px;letter-spacing:2px;color:var(--empire-red);background:#fff;padding:3px 10px;border-radius:4px;border:1px solid #E5E8EC;font-weight:600}.message-content h1,.message-content h2,.message-content h3,.message-content h4,.message-content h5,.message-content h6{margin:.6em 0 .4em;font-weight:700;line-height:1.3;color:var(--text-dark)}.message-content h1{font-size:1.5em;color:var(--empire-red-dark)}.message-content h2{font-size:1.3em;color:var(--steel-blue-dark)}.message-content h3{font-size:1.15em}.message-content h4{font-size:1em}.message-content p{margin:.8em 0;line-height:1.8}.message-content p:first-child{margin-top:0}.message-content p:last-child{margin-bottom:0}.message-content p+ul,.message-content p+ol{margin-top:1em}.message-content ul+p,.message-content ol+p{margin-top:1em}.message-content ul,.message-content ol{margin:1em 0;padding-left:1.5em}.message-content li{margin:.6em 0;line-height:1.7;position:relative}.message-content li:first-child{margin-top:0}.message-content li:last-child{margin-bottom:0}.message-content li p{margin:.3em 0}.message-content ul li{list-style-type:none}.message-content ul li:before{content:"▸";color:var(--construction-yellow);font-weight:700;display:inline-block;width:1.2em;margin-left:-1.2em;font-size:1.1em}.message-content strong{font-weight:700;color:var(--empire-red-dark)}.message-content em{font-style:italic;color:var(--steel-blue-dark)}.message-content code{background:#4a6fa51a;color:var(--steel-blue-dark);padding:.2em .5em;border-radius:4px;font-family:JetBrains Mono,Fira Code,monospace;font-size:.9em;border:1px solid rgba(74,111,165,.2)}.message-content pre{background:var(--blueprint-bg);padding:1em;border-radius:var(--radius-md);overflow-x:auto;border:1px solid var(--blueprint-lines);margin:1em 0}.message-content pre code{background:none;padding:0;border:none;color:var(--text-primary)}.message-content blockquote{border-left:4px solid var(--construction-yellow);margin:1em 0;padding:.5em 1em;background:#ffb81c14;color:var(--text-dark-secondary);font-style:italic;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.message-content a{color:var(--steel-blue);text-decoration:none;border-bottom:2px solid var(--construction-yellow);transition:all var(--transition-fast);font-weight:500}.message-content a:hover{color:var(--empire-red);border-bottom-color:var(--empire-red)}.message-content hr{border:none;border-top:2px solid var(--blueprint-paper-dark);margin:1.5em 0}.accordion{border-radius:var(--radius-md);overflow:hidden;margin:12px 0;border:1px solid transparent}.accordion-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border:none;cursor:pointer;font-size:12px;font-weight:600;text-align:left;text-transform:uppercase;letter-spacing:1px;transition:all var(--transition-fast)}.accordion-header:hover{filter:brightness(.95)}.accordion-icon{font-size:10px;transition:transform .3s ease;opacity:.8}.accordion-icon.open{transform:rotate(180deg)}.accordion-content{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;padding:0 16px}.accordion-content.open{max-height:1000px;padding:0 16px 16px}.query-optimization{background:linear-gradient(135deg,#fff9e6,#fff5d6);border:1px solid rgba(255,184,28,.3);border-left:4px solid var(--construction-yellow)}.query-optimization .accordion-header{background:transparent;color:var(--construction-yellow-muted)}.query-optimization .accordion-header:before{content:"🎯";margin-right:8px}.query-optimization .original{margin-bottom:10px;padding:12px;background:#fff;border-radius:var(--radius-sm);color:var(--text-dark);border:1px solid #E8E8E8;font-size:13px}.query-optimization .rewritten{margin-bottom:10px;padding:12px;background:linear-gradient(135deg,#e8f5e9,#e0f2e0);border-radius:var(--radius-sm);color:var(--text-dark);border:1px solid #C8E6C9;font-size:13px}.query-optimization .expanded{padding:12px;background:linear-gradient(135deg,#e3f2fd,#dceefb);border-radius:var(--radius-sm);color:var(--text-dark);border:1px solid #BBDEFB}.query-optimization .label{font-weight:600;color:var(--text-dark-secondary);display:block;margin-bottom:6px;font-size:10px;text-transform:uppercase;letter-spacing:1px}.query-optimization .terms{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.query-optimization .term{background:linear-gradient(135deg,var(--steel-blue) 0%,var(--steel-blue-dark) 100%);color:#fff;padding:6px 14px;border-radius:20px;font-size:11px;font-weight:600;border:1px solid rgba(255,255,255,.2);box-shadow:var(--shadow-sm)}.status{color:var(--text-secondary);font-size:13px;font-style:italic;margin:8px 0;display:flex;align-items:center;gap:8px}.status:before{content:"";width:8px;height:8px;background:var(--construction-yellow);border-radius:50%;animation:pulse-glow 1.5s ease-in-out infinite}.sources{background:linear-gradient(135deg,#e8f5e9,#e0f2e0);border:1px solid rgba(46,125,50,.2);border-left:4px solid var(--success-green)}.sources .accordion-header{background:transparent;color:var(--success-green)}.sources .accordion-header:before{content:"📚";margin-right:8px}.source-item{background:#fff;padding:14px;margin:8px 0;border-radius:var(--radius-sm);border:1px solid #C8E6C9;border-left:3px solid var(--construction-yellow);color:var(--text-dark);transition:all var(--transition-fast)}.source-item:hover{box-shadow:var(--shadow-sm);border-left-color:var(--empire-red)}.source-item strong{color:var(--text-dark);font-weight:600;display:block;margin-bottom:4px}.source-item small{color:var(--text-dark-secondary);font-size:12px}.input-area{padding:20px 24px;background:linear-gradient(180deg,#0d1f35f2,#0a1628fa);border-top:1px solid var(--blueprint-lines)}.input-error{margin-bottom:12px;padding:10px 16px;background:#dc262626;border:1px solid rgba(220,38,38,.4);border-radius:var(--radius-sm);color:#ff6b6b;font-size:13px;font-weight:500;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}#messageInput[aria-invalid=true]{border-color:#dc262699;box-shadow:0 0 0 3px #dc262633}.input-container{display:flex;gap:14px;align-items:center}#messageInput{flex:1;padding:14px 20px;background:#ffffff0d;border:2px solid var(--blueprint-lines);border-radius:var(--radius-md);font-size:14px;outline:none;transition:all var(--transition-fast);color:var(--text-primary);font-family:inherit}#messageInput::placeholder{color:var(--text-muted)}#messageInput:focus{border-color:var(--empire-red);box-shadow:0 0 0 3px var(--empire-red-glow);background:#ffffff14}#sendButton{padding:14px 28px;background:var(--empire-red);color:#fff;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1px;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:8px}#sendButton:after{content:"→";font-size:16px;transition:transform var(--transition-fast)}#sendButton:hover:not(:disabled){background:var(--empire-red-dark);box-shadow:var(--shadow-glow-red);transform:translateY(-2px)}#sendButton:hover:not(:disabled):after{transform:translate(4px)}#sendButton:active:not(:disabled){transform:translateY(0)}#sendButton:disabled{opacity:.5;cursor:not-allowed;background:var(--blueprint-lines)}.loading{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--construction-yellow);animation:loading-pulse 1.2s ease-in-out infinite}@keyframes loading-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.limit-warning{background:linear-gradient(135deg,#d52b1e1a,#d52b1e0d);border:1px solid rgba(213,43,30,.3);color:var(--empire-red-light);padding:16px 20px;border-radius:var(--radius-md);margin:12px 24px;font-size:14px;text-align:center;display:flex;align-items:center;justify-content:center;gap:12px}.limit-warning:before{content:"⚠️";font-size:20px}.limit-warning a{color:var(--construction-yellow);font-weight:600;text-decoration:underline;cursor:pointer;transition:color var(--transition-fast)}.limit-warning a:hover{color:var(--construction-yellow-light)}@media(max-width:768px){.container{height:100vh;border-radius:0;max-width:100%}body{padding:0}.header-main{flex-direction:column;gap:16px;text-align:center}.header-title{justify-content:center}.header-text h1,.header-text p{text-align:center}.header-controls{flex-wrap:wrap;justify-content:center}.message-content{max-width:90%}.questions-gauge{width:100%;justify-content:center}}.register-container{width:100%;max-width:480px;background:linear-gradient(165deg,#0d1f35fa,#0a1628fc);border-radius:var(--radius-xl);box-shadow:0 0 0 1px var(--steel-blue-dark),var(--shadow-lg),inset 0 1px #ffffff0d;overflow:hidden;padding:0;text-align:center;position:relative;animation:portal-appear .7s cubic-bezier(.16,1,.3,1)}@keyframes portal-appear{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.register-container:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--empire-red) 0%,var(--construction-yellow) 50%,var(--empire-red) 100%)}.register-header{padding:40px 40px 0}.register-container .emoji{font-size:72px;margin-bottom:16px;filter:drop-shadow(0 4px 20px var(--empire-red-glow));animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.register-container h1{font-family:Bebas Neue,Oswald,sans-serif;font-size:42px;font-weight:400;letter-spacing:4px;color:var(--text-primary);margin-bottom:8px;text-transform:uppercase;background:linear-gradient(90deg,var(--text-primary) 0%,var(--steel-blue-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.register-container h1:after{content:"";display:block;width:60px;height:4px;background:var(--construction-yellow);margin:16px auto 0;border-radius:2px}.register-container p{color:var(--text-secondary);margin-bottom:0;font-size:14px;line-height:1.6;padding:0 20px}.access-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:#ffb81c1a;border:1px solid rgba(255,184,28,.2);border-radius:20px;font-size:10px;letter-spacing:2px;color:var(--construction-yellow);text-transform:uppercase;font-weight:600;margin-top:20px}.access-badge:before{content:"🛡️"}.register-form{display:flex;flex-direction:column;gap:16px;padding:32px 40px 40px}.input-group{position:relative}.input-group label{display:block;text-align:left;font-size:10px;letter-spacing:1.5px;color:var(--text-muted);text-transform:uppercase;margin-bottom:8px;font-weight:600}.register-form input{width:100%;padding:16px 20px;background:#ffffff0d;border:2px solid var(--blueprint-lines);border-radius:var(--radius-md);font-size:16px;outline:none;transition:all var(--transition-fast);color:var(--text-primary);font-family:inherit}.register-form input::placeholder{color:var(--text-muted)}.register-form input:focus{border-color:var(--empire-red);box-shadow:0 0 0 3px var(--empire-red-glow);background:#ffffff14}.register-form input:disabled{opacity:.5;cursor:not-allowed}.register-form button{width:100%;padding:18px 32px;background:var(--empire-red);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:2px;cursor:pointer;transition:all var(--transition-fast);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:12px;margin-top:8px}.register-form button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.register-form button:hover:not(:disabled):before{left:100%}.register-form button:after{content:"→";font-size:18px;transition:transform var(--transition-fast)}.register-form button:hover:not(:disabled){background:var(--empire-red-dark);transform:translateY(-3px);box-shadow:var(--shadow-glow-red)}.register-form button:hover:not(:disabled):after{transform:translate(6px)}.register-form button:active:not(:disabled){transform:translateY(-1px)}.register-form button:disabled{opacity:.6;cursor:not-allowed;background:var(--blueprint-lines)}.register-form button:disabled:after{content:""}.register-form button.loading{pointer-events:none}.register-form button.loading:after{content:"";width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.register-error{background:#d52b1e1a;border:1px solid rgba(213,43,30,.3);color:var(--empire-red-light);padding:14px 20px;border-radius:var(--radius-md);font-size:13px;margin:0 40px 24px;display:flex;align-items:center;gap:10px;animation:shake .4s ease}.register-error:before{content:"⚠️";font-size:16px}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.register-footer{padding:20px 40px 32px;border-top:1px solid var(--blueprint-lines);margin-top:8px}.register-footer p{font-size:12px;color:var(--text-muted);margin:0}.register-footer .highlight{color:var(--construction-yellow);font-weight:600}.security-notice{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:#2e7d321a;border-top:1px solid var(--blueprint-lines);font-size:11px;color:var(--success-green-light);letter-spacing:.5px}.security-notice:before{content:"🔒"}@media(max-width:520px){.register-container{margin:10px;border-radius:var(--radius-lg)}.register-header,.register-form{padding-left:24px;padding-right:24px}.register-container h1{font-size:32px;letter-spacing:2px}.register-container .emoji{font-size:56px}.register-error{margin-left:24px;margin-right:24px}}
