:root{--color-gold: #D4AF37;--color-midnight: #1a1a2e;--color-midnight-dark: #0f0f1a;--color-midnight-light: #25253e;--color-background: var(--color-midnight);--color-surface: var(--color-midnight-light);--color-surface-hover: #2d2d4a;--color-primary: var(--color-gold);--color-primary-hover: #e8c55b;--color-text-primary: #ffffff;--color-text-secondary: #b8b8d1;--color-text-muted: #8686a0;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #3b82f6;--color-agent-active: var(--color-gold);--color-agent-thinking: #9ca3af;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}*{margin:0;padding:0;box-sizing:border-box}html{overflow-x:hidden}body{margin:0;min-width:320px;min-height:100dvh;background-color:var(--color-background);color:var(--color-text-primary);overflow-x:hidden;overflow-y:hidden;overscroll-behavior:none}#root{width:100vw;height:100dvh;max-width:100%;display:flex;flex-direction:column;overflow:hidden}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);font-weight:600;line-height:1.3}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}p{margin-bottom:.75rem}a{color:var(--color-primary);text-decoration:none;transition:color .2s ease}a:hover{color:var(--color-primary-hover)}button{border-radius:6px;border:1px solid transparent;padding:.625rem 1.25rem;min-height:44px;font-size:.875rem;font-weight:500;font-family:inherit;background-color:var(--color-surface);color:var(--color-text-primary);cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}button:hover{background-color:var(--color-surface-hover)}button.btn-primary{background-color:var(--color-primary);color:var(--color-midnight)}button.btn-primary:hover{background-color:var(--color-primary-hover)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:active{transform:scale(.98)}input,textarea{background-color:var(--color-surface);border:1px solid var(--color-midnight-light);color:var(--color-text-primary);border-radius:6px;padding:.625rem;min-height:44px;font-family:inherit;font-size:16px;transition:all .2s ease;-webkit-tap-highlight-color:transparent}input:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #d4af371a}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-midnight-dark)}::-webkit-scrollbar-thumb{background:var(--color-surface);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-surface-hover)}@media(max-width:767px){::-webkit-scrollbar{width:4px}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-fadeIn{animation:fadeIn .3s ease}.animate-slideUp{animation:slideUp .3s ease}.text-gold{color:var(--color-gold)}.text-muted{color:var(--color-text-muted)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.chat-container{display:flex;flex-direction:column;height:100%;background-color:var(--color-background)}.messages-area{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;-webkit-overflow-scrolling:touch}.loading-history{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:.75rem}.message{display:flex;flex-direction:column;max-width:70%;animation:slideUp .2s ease}.message-own{align-self:flex-end}.message-other{align-self:flex-start}.message-agent{border-left:3px solid var(--color-gold);padding-left:.75rem}.message-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.message-sender{font-weight:600;font-size:.875rem}.message-time{font-size:.75rem}.message-content{background-color:var(--color-surface);padding:.75rem 1rem;border-radius:8px;line-height:1.5;word-wrap:break-word;overflow-wrap:break-word}.message-own .message-content{background-color:var(--color-surface-hover)}.message-agent .message-content{background-color:#d4af371a;border:1px solid rgba(212,175,55,.2)}.agent-processing{display:flex;align-items:center;gap:.5rem;color:var(--color-agent-thinking)}.processing-dots,.typing-dots{display:flex;gap:4px}.processing-dots .dot,.typing-dots .dot{width:6px;height:6px;border-radius:50%;background-color:var(--color-gold);animation:pulse 1.4s ease-in-out infinite}.processing-dots .dot:nth-child(2),.typing-dots .dot:nth-child(2){animation-delay:.2s}.processing-dots .dot:nth-child(3),.typing-dots .dot:nth-child(3){animation-delay:.4s}.processing-text,.typing-text{font-size:.875rem;font-style:italic}.typing-indicator{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;margin-left:1rem;animation:fadeIn .3s ease}.input-area{display:flex;gap:.75rem;padding:1rem 1.5rem;background-color:var(--color-surface);border-top:1px solid var(--color-midnight-light);flex-shrink:0}.message-input{flex:1;min-height:44px;max-height:120px;resize:none;font-family:inherit;font-size:1rem;line-height:1.5;padding:.625rem .875rem}.send-button{align-self:flex-end;min-width:44px;min-height:44px;padding:.625rem 1.25rem;white-space:nowrap;font-weight:600}@media(max-width:767px){.messages-area{padding:1rem}.message{max-width:85%}.input-area{padding:.75rem 1rem;gap:.5rem}.message-input{font-size:16px;min-height:44px;padding:.5rem .75rem}.send-button{padding:.625rem 1rem;min-width:44px;min-height:44px}}@media(max-width:479px){.message{max-width:92%}.message-content{padding:.625rem .875rem}.input-area{padding:.625rem .75rem}}@media(prefers-reduced-motion:reduce){.message,.typing-indicator,.processing-dots .dot,.typing-dots .dot{animation:none}}.file-repository{display:flex;flex-direction:column;height:100%;background-color:var(--color-midnight-dark);border-left:1px solid var(--color-midnight-light)}.repository-header{padding:1.25rem 1rem;border-bottom:1px solid var(--color-midnight-light);flex-shrink:0}.repository-title{font-size:1.125rem;font-weight:600;margin-bottom:.25rem;display:flex;align-items:center;gap:.5rem}.file-count{font-size:.8125rem}.repository-search{padding:1rem;border-bottom:1px solid var(--color-midnight-light);flex-shrink:0}.search-input{width:100%;min-height:44px;background-color:var(--color-surface);border:1px solid var(--color-midnight-light);padding:.625rem .875rem;border-radius:6px;font-size:16px}.search-input:focus{border-color:var(--color-gold);box-shadow:0 0 0 3px #d4af371a}.files-list{flex:1;overflow-y:auto;padding:.5rem;-webkit-overflow-scrolling:touch}.file-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;min-height:44px;border-radius:6px;cursor:pointer;transition:background-color .2s ease}.file-item:hover{background-color:var(--color-surface)}.file-icon{font-size:1.5rem;flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.file-details{flex:1;min-width:0}.file-name{font-size:.875rem;font-weight:500;margin-bottom:.125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-meta{font-size:.75rem}.file-download{flex-shrink:0;min-width:44px;min-height:44px;width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;background-color:transparent;border-radius:6px;font-size:1.25rem;opacity:0;transition:opacity .2s ease,background-color .2s ease}.file-item:hover .file-download{opacity:1}.file-download:hover{background-color:var(--color-surface-hover);color:var(--color-gold)}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;gap:1rem}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-surface);border-top-color:var(--color-gold);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;margin:.5rem 1rem;color:var(--color-error);font-size:.875rem}.error-banner button{min-width:44px;min-height:44px;width:44px;height:44px;padding:0;background:transparent;border:none;color:var(--color-error);font-size:1.125rem;display:flex;align-items:center;justify-content:center}.repository-footer{padding:1rem;border-top:1px solid var(--color-midnight-light);flex-shrink:0}.upload-button{width:100%;min-height:44px;display:flex;align-items:center;justify-content:center;gap:.5rem;font-weight:600;padding:.75rem 1rem}.upload-button span{font-size:1.125rem}@media(max-width:1023px){.file-repository{border-left:none}}@media(max-width:767px){.repository-header{padding:1rem}.repository-title{font-size:1rem}.file-item{padding:.625rem;min-height:48px}.file-download{opacity:1}.repository-search,.repository-footer{padding:.75rem 1rem}}@media(prefers-reduced-motion:reduce){.file-download{transition:none}.loading-spinner{animation:none}}.app-container{display:flex;flex-direction:column;height:100dvh;width:100vw;overflow:hidden;max-width:100%}.app-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background-color:var(--color-midnight-dark);border-bottom:2px solid var(--color-gold);flex-shrink:0}.header-left{display:flex;flex-direction:column;gap:.25rem;min-width:0}.app-title{font-size:1.5rem;font-weight:700;margin:0;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-subtitle{font-size:.75rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.header-right{display:flex;align-items:center;gap:1.5rem;flex-shrink:0}.connection-status{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:var(--color-surface);border-radius:6px;min-height:44px}.status-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.status-text{font-size:.875rem;font-weight:500}.latency-badge{font-size:.75rem;font-weight:600;padding:.125rem .5rem;background-color:#0000004d;border-radius:4px;font-family:Courier New,monospace}.sidebar-toggle{display:none;min-width:44px;min-height:44px;width:44px;height:44px;padding:0;font-size:1.25rem;border-radius:6px;align-items:center;justify-content:center}.app-main{display:flex;flex:1;overflow:hidden;position:relative}.chat-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.sidebar{width:320px;flex-shrink:0;display:flex;flex-direction:column;transition:transform .3s ease}.sidebar-overlay{display:none;position:fixed;inset:0;background-color:#00000080;z-index:99;opacity:0;pointer-events:none;transition:opacity .3s ease}.sidebar-overlay-visible{opacity:1;pointer-events:auto}@media(min-width:1024px){.sidebar{position:relative;transform:none;z-index:auto}.sidebar-toggle,.sidebar-overlay{display:none!important}}@media(max-width:1023px){.sidebar-toggle{display:flex}.sidebar-overlay{display:block}.sidebar{position:fixed;right:0;top:0;bottom:0;width:85vw;max-width:320px;z-index:100;box-shadow:-4px 0 20px #0006;background-color:var(--color-midnight-dark)}.sidebar-closed{transform:translate(100%)}.sidebar-open{transform:translate(0)}}@media(max-width:1023px)and (min-width:768px){.app-header{padding:.875rem 1rem}.app-title{font-size:1.25rem}.header-subtitle{font-size:.6875rem}}@media(max-width:767px){.app-header{padding:.75rem 1rem}.app-title{font-size:1.125rem}.header-subtitle{display:none}.header-right{gap:.75rem}.connection-status{padding:.375rem .75rem;min-height:44px}.status-text{display:none}}@media(max-width:479px){.app-header{padding:.625rem .875rem}.app-title{font-size:1rem}.latency-badge{font-size:.6875rem}.sidebar{width:90vw;max-width:300px}}@media(prefers-contrast:high){.app-header{border-bottom-width:3px}.status-indicator{border:2px solid var(--color-text-primary)}}@media(prefers-reduced-motion:reduce){.sidebar,.sidebar-overlay{transition:none}.status-indicator{animation:none}}
