.app{display:flex;flex-direction:column;height:100vh;background:#2e2c29}.header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#46433a;border-bottom:3px solid #474745;color:#ffcf3f;box-shadow:0 2px 8px #00000080}.header-content{display:flex;align-items:center;gap:1rem}.logo{width:40px;height:40px;filter:drop-shadow(2px 2px 2px rgba(0,0,0,.5))}.header h1{margin:0;font-size:1.5rem;color:#ffcf3f;text-shadow:2px 2px 0 #0F0F0F;font-weight:700;font-family:MedievalSharp,"Exo 2",monospace;letter-spacing:2px;text-transform:uppercase}.logout-button{padding:.5rem 1.5rem;background:#694d23;color:#ffcf3f;border:2px solid #474745;border-radius:0;cursor:pointer;font-weight:600;transition:all .2s;text-shadow:1px 1px 0 #0F0F0F}.logout-button:hover{background:#382d1a;border-color:#e6a519;box-shadow:0 0 8px #e6a5194d;transform:translateY(-1px);transition:all .2s ease}.chat-container{display:flex;flex-direction:column;flex:1;overflow:hidden}.messages{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:16px}.welcome-message{text-align:center;color:#e6a519;padding:32px;font-style:normal;text-shadow:1px 1px 0 #0F0F0F;font-size:1.1rem;letter-spacing:.5px}.message{max-width:70%;padding:1rem;border:2px solid #474745;border-radius:0;word-wrap:break-word;white-space:pre-wrap}.message.user{align-self:flex-end;background:#46433a;color:#0ff;margin-left:auto;text-shadow:1px 1px 0 #0F0F0F;border:2px solid #694D23}.message.assistant{align-self:flex-start;background:#694d23;color:#ffcf3f;margin-right:auto;text-shadow:1px 1px 0 #0F0F0F;border:2px solid #E6A519}.message-content{margin:0}.citations{margin-top:12px;padding-top:12px;border-top:1px solid rgba(71,71,69,.5)}.citations h4{margin:0 0 8px;font-size:.85rem;color:#e6a519;text-transform:uppercase;letter-spacing:.5px}.citations ul{margin:0;padding-left:20px;list-style:none}.citations li{margin-bottom:4px}.citations a{color:#0ff;text-decoration:none;font-size:.9rem;transition:all .2s}.citations a:hover{color:#e6a519;text-shadow:0 0 4px rgba(230,165,25,.5)}.token-stats{margin-top:8px;padding-top:8px;border-top:1px solid rgba(71,71,69,.3);font-size:.75rem;color:#a0a0a0;font-style:italic;text-shadow:none}.loading-dots span{animation:blink 1.4s infinite;opacity:0}.loading-dots span:nth-child(1){animation-delay:0s}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,to{opacity:0}50%{opacity:1}}.input-container{padding:16px 24px;background:#46433a;border-top:3px solid #474745;display:flex;gap:16px}.input-container textarea{flex:1;padding:.75rem;border:2px solid #474745;border-radius:0;background:#2e2c29;color:#ffcf3f;font-size:1rem;font-family:inherit;resize:none}.input-container textarea::placeholder{color:#694d23}.input-container textarea:focus{outline:none;border-color:#e6a519;box-shadow:0 0 8px #e6a5194d}.input-container textarea:disabled{opacity:.5;cursor:not-allowed}.input-container button{padding:.75rem 2rem;background:#694d23;color:#ffcf3f;border:2px solid #474745;border-radius:0;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;text-shadow:1px 1px 0 #0F0F0F}.input-container button:hover:not(:disabled){background:#382d1a;border-color:#e6a519;box-shadow:0 0 8px #e6a5194d;transform:translateY(-1px);transition:all .2s ease}.input-container button:disabled{opacity:.5;cursor:not-allowed}.messages::-webkit-scrollbar{width:8px}.messages::-webkit-scrollbar-track{background:#2e2c29}.messages::-webkit-scrollbar-thumb{background:#694d23;border-radius:0;border:1px solid #474745}.messages::-webkit-scrollbar-thumb:hover{background:#e6a519}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:MedievalSharp,"Exo 2",Courier New,monospace;background-color:#2e2c29;color:#ffcf3f;line-height:1.6;display:flex;justify-content:center;align-items:center;min-height:100vh}#root{width:100%;max-width:800px;height:90vh;max-height:900px;border:3px solid #5a4a3a;background-color:#0d0d0d;display:flex;flex-direction:column;overflow:hidden;border-radius:5px;box-shadow:0 0 10px #00000080}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:#2e2c29;position:fixed;top:0;left:0;right:0;bottom:0}.login-box{background:#46433a;padding:2rem;border:3px solid #474745;border-radius:0;box-shadow:inset 0 0 0 1px #00000080,0 4px 16px #000c;width:100%;max-width:400px;text-align:center}.login-logo{width:80px;height:80px;margin-bottom:1rem;filter:drop-shadow(2px 2px 2px rgba(0,0,0,.5))}.login-box h1{color:#ffcf3f;margin-bottom:.5rem;text-shadow:2px 2px 0 #0F0F0F;font-weight:700;font-family:MedievalSharp,"Exo 2",monospace;letter-spacing:1px}.login-subtitle{color:#e6a519;margin-bottom:2rem;text-shadow:1px 1px 0 #0F0F0F;font-size:.95rem;letter-spacing:.5px}.password-input{width:100%;padding:.75rem;background:#2e2c29;color:#ffcf3f;border:2px solid #474745;border-radius:0;font-size:1rem;margin-bottom:1rem;transition:border-color .2s}.password-input:focus{outline:none;border-color:#e6a519;box-shadow:0 0 8px #e6a5194d}.password-input::placeholder{color:#694d23}.login-button{width:100%;padding:.75rem;background:#694d23;color:#ffcf3f;border:2px solid #474745;border-radius:0;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;text-shadow:1px 1px 0 #0F0F0F}.login-button:hover:not(:disabled){background:#382d1a;border-color:#e6a519;box-shadow:0 0 8px #e6a5194d}.login-button:disabled{opacity:.5;cursor:not-allowed}.error-message{color:red;font-size:.875rem;margin-bottom:1rem;text-shadow:1px 1px 0 #0F0F0F}.loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;background:#2e2c29;color:#ffcf3f}.spinner{width:50px;height:50px;border:4px solid #474745;border-top-color:#e6a519;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
