.App{width:100%;height:100%}:root{font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;--mitek-blue: #3f51b5;--mitek-blue-dark: #303f9f;--mitek-blue-light: #5c6bc0;--mitek-gold: #FFC72C;--mitek-silver: #C0C0C0;--text-primary: #1a1a1a;--text-secondary: #666666;--bg-primary: #ffffff;--bg-secondary: #f5f7fa;--bg-card: #f8f9fa;--border-color: #d1d5db;--success-green: #059669;--error-red: #dc2626;--usaf-blue: var(--mitek-blue);--usaf-blue-dark: var(--mitek-blue-dark);--usaf-blue-light: var(--mitek-blue-light);--usaf-gold: var(--mitek-gold);--usaf-silver: var(--mitek-silver);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg-primary)}#root{width:100%;height:100vh;display:flex;flex-direction:column}.app-layout{width:100%;height:100vh;display:flex;flex-direction:column;background:var(--bg-primary)}.main-header{display:flex;justify-content:space-between;align-items:center;padding:16px 32px;background:var(--mitek-blue);color:#fff;box-shadow:0 2px 4px #0000001a;z-index:100;min-height:70px}.logo-container{display:flex;align-items:center;flex-shrink:0;min-width:0;height:100%}.logo-image{height:50px;width:auto;object-fit:contain;display:block}.header-title{font-size:18px;font-weight:500;color:#fff;flex:1;text-align:center;padding:0 20px;min-width:0}.header-actions{display:flex;align-items:center;gap:16px;flex-shrink:0;min-width:0}.header-actions svg{color:#fff;cursor:pointer;transition:opacity .2s}.header-actions svg:hover{opacity:.8}.user-email{font-size:14px;color:#fff}.main-content{flex:1;overflow:hidden;background:var(--bg-primary);display:flex;flex-direction:column}.main-footer{background:var(--mitek-blue);color:#fff;padding:16px 32px;box-shadow:0 -2px 4px #0000001a}.footer-content{text-align:center;font-size:14px;color:#fff}.App{width:100%;height:100%;display:flex;flex-direction:column}.chat-interface{display:flex;flex-direction:column;height:100%;width:100%;background:var(--bg-primary);overflow:hidden}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:16px 32px;background:var(--bg-primary);color:var(--text-primary);border-bottom:1px solid var(--border-color);box-shadow:0 1px 3px #0000000d}.chat-header h1{margin:0;font-size:20px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--text-primary)}.clear-button{background:#ffffff26;border:1px solid rgba(255,255,255,.3);color:#fff;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s;text-transform:uppercase;letter-spacing:.5px}.clear-button:hover:not(:disabled){background:#ffffff40;border-color:var(--usaf-gold)}.clear-button:disabled{opacity:.4;cursor:not-allowed}.chat-messages{flex:1;overflow-y:auto;padding:24px 32px;display:flex;flex-direction:column;gap:24px;background:var(--bg-secondary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:var(--text-secondary)}.empty-icon{color:var(--usaf-blue);margin-bottom:20px}.empty-state h3{margin:0 0 10px;font-size:22px;color:var(--text-primary);font-weight:600}.empty-state p{margin:0;font-size:15px;color:var(--text-secondary);max-width:500px}.message-list{display:flex;flex-direction:column;gap:24px;max-width:1400px;width:100%;margin:0 auto}.message{display:flex;flex-direction:column;width:100%}.message.user{align-items:flex-end}.message.assistant{align-items:flex-start}.message-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.message-avatar{width:36px;height:36px;border-radius:4px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;box-shadow:0 2px 4px #0000001a}.message.user .message-avatar{background:var(--usaf-blue-light)}.message.assistant .message-avatar{background:var(--usaf-blue-dark)}.message-meta{display:flex;flex-direction:column;gap:2px}.message-role{font-weight:600;font-size:13px;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.message-time{font-size:11px;color:var(--text-secondary)}.message-content{background:#fff;border-radius:6px;padding:20px;box-shadow:0 1px 3px #0000001a;border:1px solid var(--border-color);max-width:100%;width:100%}.message.user .message-content{background:var(--usaf-blue);color:#fff;border-color:var(--usaf-blue-dark);max-width:70%}.message.assistant .message-content{max-width:100%}.message-text{line-height:1.6;font-size:14px;word-wrap:break-word}.message-text ul,.message-text ol{margin:12px 0;padding-left:24px}.message-text li{margin:6px 0}.message-text p{margin:12px 0}.message-text p:first-child{margin-top:0}.message-text p:last-child{margin-bottom:0}.message-citations{margin-top:20px;padding-top:20px;border-top:2px solid var(--usaf-gold)}.message-citations h4{margin:0 0 16px;font-size:13px;font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.citation{background:var(--bg-secondary);border:1px solid var(--border-color);border-left:3px solid var(--usaf-blue);border-radius:4px;padding:16px;margin-bottom:12px;transition:all .2s}.citation:hover{border-left-color:var(--usaf-gold);box-shadow:0 2px 8px #00000014}.citation-header{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}.citation-icon{color:var(--usaf-blue);flex-shrink:0;margin-top:2px}.citation-title{font-weight:600;font-size:13px;color:var(--text-primary);flex:1;line-height:1.4}.citation-link{background:var(--usaf-blue);border:none;color:#fff;cursor:pointer;padding:6px 12px;border-radius:4px;transition:all .2s;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:4px;flex-shrink:0}.citation-link:hover{background:var(--usaf-blue-dark);transform:translateY(-1px);box-shadow:0 2px 4px #0003}.citation-excerpt{font-size:13px;color:var(--text-secondary);line-height:1.5;padding:12px;background:#fff;border-radius:4px;border:1px solid var(--border-color);font-style:italic}.citation-highlight{background:var(--usaf-gold);color:var(--text-primary);padding:2px 4px;border-radius:2px;font-weight:600;font-style:normal}.citation-score{margin-top:8px;font-size:11px;color:var(--text-secondary);font-weight:500}.loading-message{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#fff;border-radius:6px;box-shadow:0 1px 3px #0000001a;border:1px solid var(--border-color);max-width:200px}.loading-avatar{width:36px;height:36px;border-radius:4px;background:var(--usaf-blue-dark);display:flex;align-items:center;justify-content:center;color:#fff}.loading-text{font-size:14px;color:var(--text-primary);font-weight:500}.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-banner{display:flex;align-items:center;gap:12px;padding:12px 32px;background:#fef2f2;border-bottom:2px solid var(--error-red);color:var(--error-red);font-size:13px;font-weight:500}.retry-button{background:var(--error-red);color:#fff;border:none;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:11px;font-weight:600;display:flex;align-items:center;gap:4px;transition:all .2s;text-transform:uppercase;letter-spacing:.5px}.retry-button:hover{background:#b91c1c;transform:translateY(-1px)}.chat-input{padding:20px 32px;background:#fff;border-top:2px solid var(--border-color);box-shadow:0 -2px 8px #0000000d}.query-input-wrapper{position:relative;max-width:1400px;margin:0 auto}.query-input-form{display:flex;flex-direction:column;gap:8px}.query-input-container{display:flex;align-items:flex-end;gap:12px;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:6px;padding:12px;transition:all .2s}.query-input-container:focus-within{border-color:var(--usaf-blue);background:#fff}.query-textarea{flex:1;border:none;background:none;outline:none;resize:none;font-family:inherit;font-size:14px;line-height:1.5;min-height:20px;max-height:120px;color:var(--text-primary)}.query-textarea::placeholder{color:#9ca3af}.send-button{background:var(--usaf-blue);border:none;color:#fff;width:44px;height:44px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.send-button:hover:not(:disabled){background:var(--usaf-blue-dark);transform:translateY(-1px);box-shadow:0 4px 8px #0030874d}.send-button:disabled{background:#d1d5db;cursor:not-allowed;transform:none}.query-input-footer{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--text-secondary)}.char-count{font-weight:500}.input-hint{font-style:italic}.suggestions-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--border-color);border-top:none;border-radius:0 0 6px 6px;box-shadow:0 4px 12px #00000026;max-height:300px;overflow-y:auto;z-index:1000;margin-top:-8px;padding:4px 0}.suggestions-dropdown.suggestions-above{top:auto;bottom:100%;border-top:1px solid var(--border-color);border-bottom:none;border-radius:6px 6px 0 0;margin-top:0;margin-bottom:-8px;box-shadow:0 -4px 12px #00000026}.suggestion-item{padding:12px 16px;cursor:pointer;font-size:14px;color:var(--text-primary);transition:all .15s;border-left:3px solid transparent}.suggestion-item:hover,.suggestion-item.selected{background:var(--bg-secondary);border-left-color:var(--usaf-blue);color:var(--usaf-blue-dark)}.suggestion-item:first-child{margin-top:4px}.suggestion-item:last-child{margin-bottom:4px}.suggestions-loading{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--border-color);border-top:none;border-radius:0 0 6px 6px;padding:12px 16px;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);z-index:1000;margin-top:-8px}.suggestions-loading .spinning{color:var(--usaf-blue)}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-track{background:var(--bg-secondary)}.chat-messages::-webkit-scrollbar-thumb{background:var(--usaf-silver);border-radius:4px}.chat-messages::-webkit-scrollbar-thumb:hover{background:var(--usaf-blue)}.sign-out-button{background:#ffffff26;border:1px solid rgba(255,255,255,.3);color:#fff;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s;text-transform:uppercase;letter-spacing:.5px}.sign-out-button:hover{background:#ffffff40;border-color:var(--mitek-gold)}.login-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;background:var(--bg-primary);padding:40px 20px}.login-container>h2{color:var(--text-primary);margin-bottom:32px;font-size:28px;font-weight:600;text-transform:uppercase;letter-spacing:1px}.form-group{margin-bottom:20px;width:100%;max-width:400px}.form-group label{display:block;margin-bottom:8px;color:var(--text-primary);font-size:14px;font-weight:500;letter-spacing:.5px}.form-group input{width:100%;padding:12px;border:2px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;transition:all .2s}.form-group input:focus{outline:none;border-color:var(--mitek-blue);background:var(--bg-primary)}.form-group input::placeholder{color:var(--text-secondary)}.form-group input:disabled{opacity:.5;cursor:not-allowed}.login-container button[type=submit]{width:100%;max-width:400px;padding:14px;background:var(--mitek-blue);border:2px solid var(--mitek-blue);color:#fff;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:1px;transition:all .2s}.login-container button[type=submit]:hover:not(:disabled){background:var(--mitek-blue-dark);transform:translateY(-2px);box-shadow:0 4px 12px #0030874d}.login-container button[type=submit]:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-container p{margin-top:24px;color:var(--text-secondary);font-size:14px}.link-button{background:none;border:none;color:var(--mitek-blue);cursor:pointer;text-decoration:underline;font-size:14px;font-weight:600;transition:all .2s}.link-button:hover{color:var(--mitek-blue-dark)}.error-message{background:#dc26261a;color:var(--error-red);padding:10px;border-radius:4px;border:1px solid rgba(220,38,38,.3);margin-bottom:16px;font-size:13px;width:100%;max-width:400px}.loading{display:flex;align-items:center;justify-content:center;min-height:100%;color:var(--text-primary);font-size:16px}.selection-list{margin-top:20px;padding:16px;background:var(--bg-secondary);border-radius:6px;border:1px solid var(--border-color)}.selection-list-title{font-weight:600;font-size:14px;color:var(--text-primary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.selection-items{display:flex;flex-direction:column;gap:8px}.selection-item{background:#fff;border:2px solid var(--border-color);border-radius:4px;padding:12px 16px;cursor:pointer;font-size:14px;color:var(--text-primary);text-align:left;transition:all .2s;font-weight:500}.selection-item:hover{background:var(--mitek-blue);color:#fff;border-color:var(--mitek-blue);transform:translate(4px)}.selection-item:active{transform:translate(2px)}.selection-item-description{font-weight:400;color:var(--text-secondary);font-size:13px}.selection-item:hover .selection-item-description{color:#ffffffe6}.message-text details{margin:16px 0;padding:12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer}.message-text details summary{font-weight:600;font-size:13px;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;list-style:none;display:flex;align-items:center;gap:8px;-webkit-user-select:none;user-select:none}.message-text details summary::-webkit-details-marker{display:none}.message-text details summary::marker{display:none}.message-text details summary:before{content:"[+]";color:var(--text-secondary);font-size:.9em;font-weight:400;margin-right:4px}.message-text details[open] summary:before{content:"[-]"}.message-text details summary:hover{color:var(--mitek-blue)}.message-text details summary strong{font-weight:600}.message-text details[open] summary{margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.message-text details ul{margin:8px 0 0;padding-left:20px}.message-text details li{margin:4px 0;font-size:13px;color:var(--text-primary)}@media (max-width: 768px){.main-header{padding:12px 16px;flex-wrap:wrap;min-height:auto}.logo-container{flex-shrink:0;min-width:auto}.logo-image{height:40px}.header-title{font-size:14px;order:3;width:100%;margin-top:8px;padding:0}.header-actions{gap:12px;flex-shrink:0}.user-email{display:none}.chat-header{padding:12px 16px}.chat-header h1{font-size:16px}.chat-messages{padding:16px}.message.user .message-content{max-width:85%}.chat-input{padding:16px}.message-list{max-width:100%}.login-container{padding:16px}.main-footer{padding:12px 16px}.footer-content{font-size:12px}}
