:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#dcddde;background-color:#36393f;line-height:1.5;font-weight:400}*{box-sizing:border-box}body,html,#root{margin:0;min-height:100%}body{display:flex;align-items:center;justify-content:center;background:#202225}.app-shell{display:grid;grid-template-rows:auto 1fr auto;width:min(1200px,100vw - 2rem);height:min(85vh,100vh - 2rem);background:#36393f;border-radius:8px;box-shadow:0 8px 16px #0006;overflow:hidden}.app-header{padding:1.5rem 2rem 1rem;background:#2f3136;border-bottom:1px solid #202225}.logo{display:flex;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:600;color:#fff}.logo-icon{width:40px;height:40px;border-radius:8px}.logo-text{letter-spacing:-.01em}.header-subtitle{margin:.5rem 0 0;max-width:560px;color:#b9bbbe;font-size:.9rem}.app-main{padding:0 1.5rem 1rem;display:flex;min-height:0;width:100%}.app-footer{padding:.75rem 2rem 1rem;font-size:.8rem;color:#72767d;background:#2f3136;border-top:1px solid #202225}.app-footer code{padding:.2rem .4rem;background-color:#202225;color:#dcddde;border-radius:.25rem}.app-main>.chat-window{flex:1 1 auto;min-height:0}.chat-window{display:flex;flex-direction:column;height:100%;min-height:0;border-radius:8px;background:#36393f;border:1px solid #202225;overflow:hidden}.chat-messages{flex:1 1 auto;padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem;min-height:0;scrollbar-gutter:stable;scrollbar-width:thin}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:#202225;border-radius:4px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#18191c}.chat-bubble{display:flex;flex-direction:column;gap:.35rem;max-width:80%;padding:.75rem 1rem;border-radius:4px;font-size:.95rem;line-height:1.5;position:relative}.chat-content{margin:0;display:flex;flex-direction:column;gap:.5rem;font:inherit}.chat-content p,.chat-content ul,.chat-content ol,.chat-content pre,.chat-content blockquote{margin:0}.chat-content ul,.chat-content ol{padding-left:1.25rem;display:grid;gap:.35rem}.chat-content li{padding-left:.25rem}.chat-content code{font-family:JetBrains Mono,Fira Code,Source Code Pro,ui-monospace,SFMono-Regular,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.85em;padding:.15rem .4rem;border-radius:3px;background:#202225;color:#dcddde}.chat-content pre{background:#2f3136;padding:.75rem;border-radius:4px;overflow-x:auto;border:1px solid #202225}.chat-content pre code{padding:0;background:transparent;color:#dcddde;font-size:.9em}.chat-content blockquote{border-left:3px solid #4e5058;padding-left:.75rem;color:#b9bbbe;font-style:italic}.chat-content a{color:#00aff4;text-decoration:underline;text-decoration-thickness:1px}.chat-bubble.user{margin-left:auto;background:#4752c4;color:#fff;align-items:flex-end}.chat-bubble.user .chat-content code,.chat-bubble.user .chat-content pre{background:#0003;color:#fff}.chat-bubble.user .chat-content pre{border-color:#0003}.chat-bubble.user .chat-content blockquote{border-left-color:#fff6;color:#ffffffe6}.chat-bubble.user .chat-content a{color:#fff;text-decoration-color:#fff9}.chat-bubble.bot{margin-right:auto;background:#2f3136;border:1px solid #202225;color:#dcddde}.chat-author{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.8}.chat-timestamp{font-size:.7rem;color:#72767d}.chat-bubble.bot .chat-timestamp{color:#72767d}.chat-bubble.user .chat-timestamp{color:#ffffffb3}.message-form{display:flex;gap:.75rem;padding:1rem 1.5rem;background:#40444b;border-top:none}.message-form input{flex:1 1 auto;padding:.75rem 1rem;border-radius:8px;border:none;background:#40444b;color:#dcddde;font-size:.95rem;transition:background-color .15s ease}.message-form input::placeholder{color:#72767d}.message-form input:focus{outline:none;background:#383a40}.message-form button{border:none;background:#4752c4;color:#fff;padding:.75rem 1.25rem;border-radius:8px;font-weight:500;font-size:.95rem;cursor:pointer;transition:background-color .15s ease}.message-form button:disabled{background:#4e5058;cursor:not-allowed;opacity:.5}.message-form button:not(:disabled):hover{background:#3c45a5}.message-form button.remove-file{background:transparent;color:#ed4245;padding:.5rem .75rem;font-size:.85rem}.message-form button.remove-file:hover{background:#ed42451a}.message-form .file-select-button{background:#2f3136;color:#dcddde;border:1px solid #202225;padding:.75rem 1rem;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:500;transition:background-color .15s ease;display:inline-block;-webkit-user-select:none;user-select:none}.message-form .file-select-button:hover{background:#383a40}.message-form input[type=file]:disabled+.file-select-button{opacity:.5;cursor:not-allowed;pointer-events:none}.message-form .file-preview{align-self:center;font-size:.85rem;color:#b9bbbe;background:#2f3136;padding:.5rem .75rem;border-radius:4px;border:1px solid #202225;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-attachments{display:flex;flex-wrap:wrap;gap:.4rem}.chat-attachment{display:inline-flex;align-items:center;gap:.5rem;background:#2f3136;color:#b9bbbe;border:1px solid #202225;padding:.35rem .65rem;border-radius:4px;font-size:.8rem}.chat-attachment .name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-attachment .meta{opacity:.7;color:#72767d}.chat-status{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem .9rem;border-radius:4px;font-size:.85rem}.chat-status.loading{align-self:center;background:#2f3136;color:#b9bbbe;border:1px solid #202225}.chat-status.loading .dot{width:.5rem;height:.5rem;border-radius:50%;background:#72767d;animation:bounce 1s infinite ease-in-out}.chat-status.loading .dot:nth-child(2){animation-delay:.2s}.chat-status.loading .dot:nth-child(3){animation-delay:.4s}.chat-status.error{align-self:center;background:#f04747;color:#fff}.chat-status.error button{border:none;background:transparent;text-decoration:underline;cursor:pointer;color:inherit;font-weight:500}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@media (max-width: 768px){.app-shell{width:100vw;height:100vh;border-radius:0}.app-header,.app-main,.app-footer{padding:1.5rem}}
