*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--text-primary: #f8fafc;--text-secondary: #94a3b8;--accent: #3b82f6;--accent-hover: #2563eb;--success: #22c55e;--warning: #f59e0b;--error: #ef4444;--border: #475569}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh}.app{display:flex;height:100vh}.sidebar{width:280px;background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1rem}.sidebar h1{font-size:1.25rem;font-weight:700;margin-bottom:.5rem;color:var(--accent)}.sidebar p{font-size:.75rem;color:var(--text-secondary);margin-bottom:1.5rem}.upload-section{margin-bottom:1.5rem}.upload-section h3{font-size:.875rem;font-weight:600;margin-bottom:.5rem}.upload-area{border:2px dashed var(--border);border-radius:8px;padding:1rem;text-align:center;cursor:pointer;transition:all .2s}.upload-area:hover{border-color:var(--accent);background:#3b82f61a}.upload-area.dragging{border-color:var(--accent);background:#3b82f633}.upload-area input{display:none}.upload-area p{font-size:.75rem;margin:0}.tables-section{flex:1;overflow-y:auto}.tables-section h3{font-size:.875rem;font-weight:600;margin-bottom:.5rem;display:flex;justify-content:space-between;align-items:center}.table-count{background:var(--bg-tertiary);padding:.125rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500}.table-list{display:flex;flex-direction:column;gap:.25rem}.table-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:var(--bg-tertiary);border-radius:6px;font-size:.8rem;font-family:JetBrains Mono,monospace;cursor:pointer;transition:all .2s}.table-item:hover{background:var(--border)}.table-item .delete-btn{opacity:0;background:none;border:none;color:var(--error);cursor:pointer;padding:.25rem}.table-item:hover .delete-btn{opacity:1}.no-tables{text-align:center;color:var(--text-secondary);font-size:.75rem;padding:1rem}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.chat-container{flex:1;overflow-y:auto;padding:1rem 2rem}.message{max-width:800px;margin:0 auto 1rem;padding:1rem;border-radius:8px}.message.user{background:var(--accent);margin-left:auto;max-width:600px}.message.assistant{background:var(--bg-secondary)}.message.system{background:var(--bg-tertiary);text-align:center;font-size:.875rem;color:var(--text-secondary)}.code-block-wrapper{position:relative;margin:.5rem 0;border-radius:8px;overflow:hidden;background:var(--bg-primary)}.code-block-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;background:#0000004d;border-bottom:1px solid var(--border)}.code-language{font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.copy-btn{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);padding:.25rem .75rem;border-radius:4px;font-size:.7rem;font-weight:500;cursor:pointer;transition:all .2s}.copy-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.code-block-wrapper pre{margin:0!important;padding:1rem!important;background:transparent!important}.code-block-plain{padding:1rem;margin:0;overflow-x:auto}.message pre{background:var(--bg-primary);padding:1rem;border-radius:6px;overflow-x:auto;margin:.5rem 0}.message code{font-family:JetBrains Mono,monospace;font-size:.85rem}.message p{line-height:1.6}.message p+p{margin-top:.75rem}.input-area{padding:1rem 2rem;background:var(--bg-secondary);border-top:1px solid var(--border)}.input-container{max-width:800px;margin:0 auto;display:flex;gap:.75rem}.input-container textarea{flex:1;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem;color:var(--text-primary);font-family:inherit;font-size:.9rem;resize:none;min-height:44px;max-height:200px}.input-container textarea:focus{outline:none;border-color:var(--accent)}.input-container button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:0 1.5rem;font-weight:600;cursor:pointer;transition:background .2s}.input-container button:hover:not(:disabled){background:var(--accent-hover)}.input-container button:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--bg-secondary);border-radius:12px;max-width:700px;max-height:80vh;overflow-y:auto;width:90%;padding:1.5rem}.modal h2{font-size:1.25rem;margin-bottom:.5rem;font-family:JetBrains Mono,monospace;color:var(--accent)}.modal p{color:var(--text-secondary);font-size:.875rem;margin-bottom:1rem}.modal h3{font-size:.875rem;font-weight:600;margin:1rem 0 .5rem;color:var(--text-primary)}.modal table{width:100%;border-collapse:collapse;font-size:.8rem}.modal th,.modal td{text-align:left;padding:.5rem;border-bottom:1px solid var(--border)}.modal th{color:var(--text-secondary);font-weight:500}.modal .close-btn{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer}.key-badge{background:var(--warning);color:var(--bg-primary);padding:.125rem .375rem;border-radius:4px;font-size:.65rem;font-weight:600;margin-left:.5rem}.key-badge.fk{background:var(--accent)}.loading{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary)}.loading-spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.status{padding:.5rem 1rem;border-radius:6px;font-size:.8rem;margin-bottom:1rem}.status.success{background:#22c55e33;color:var(--success)}.status.error{background:#ef444433;color:var(--error)}.quick-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem;padding:0 2rem}.quick-action{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);padding:.375rem .75rem;border-radius:6px;font-size:.75rem;cursor:pointer;transition:all .2s}.quick-action:hover{border-color:var(--accent);color:var(--text-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.conversation-actions{display:flex;gap:.5rem;margin-bottom:1rem}.action-btn{flex:1;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);padding:.5rem;border-radius:6px;font-size:.7rem;cursor:pointer;transition:all .2s}.action-btn:hover{background:var(--border);color:var(--text-primary)}.learning-section{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.learning-section h3{font-size:.875rem;font-weight:600;margin-bottom:.5rem;display:flex;justify-content:space-between;align-items:center}.info-btn{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);width:20px;height:20px;border-radius:50%;font-size:.7rem;cursor:pointer;transition:all .2s}.info-btn:hover{background:var(--accent);color:#fff}.learning-buttons{display:flex;gap:.5rem}.learn-btn{flex:1;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);padding:.375rem .5rem;border-radius:6px;font-size:.65rem;cursor:pointer;transition:all .2s}.learn-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.learning-stats{display:flex;gap:.5rem;margin-top:.5rem;font-size:.7rem;color:var(--text-secondary)}.learning-stats span{background:var(--bg-tertiary);padding:.125rem .5rem;border-radius:4px}.modal.small{max-width:400px}.modal.wide{max-width:900px}.modal input[type=text]{width:100%;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;padding:.75rem 1rem;color:var(--text-primary);font-size:.9rem;margin-bottom:1rem}.modal input[type=text]:focus{outline:none;border-color:var(--accent)}.modal-buttons{display:flex;justify-content:flex-end;gap:.5rem}.modal-buttons button{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);padding:.5rem 1rem;border-radius:6px;cursor:pointer;transition:all .2s}.modal-buttons button:last-child{background:var(--accent);border-color:var(--accent)}.modal-buttons button:hover:not(:disabled){opacity:.9}.modal-buttons button:disabled{opacity:.5;cursor:not-allowed}.modal-close-btn{display:block;margin:1rem auto 0;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);padding:.5rem 1.5rem;border-radius:6px;cursor:pointer}.modal-close-btn:hover{background:var(--border)}.conversation-list{display:flex;flex-direction:column;gap:.5rem;max-height:400px;overflow-y:auto}.conversation-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-tertiary);border-radius:6px;cursor:pointer;transition:all .2s}.conversation-item:hover{background:var(--border)}.conv-info{display:flex;flex-direction:column;gap:.25rem}.conv-info strong{font-size:.9rem}.conv-info span{font-size:.75rem;color:var(--text-secondary)}.conversation-item .delete-btn{opacity:0;background:none;border:none;color:var(--error);cursor:pointer;padding:.25rem .5rem;font-size:1rem}.conversation-item:hover .delete-btn{opacity:1}.modal ul{list-style:none;padding:0}.modal ul li{padding:.5rem 0;border-bottom:1px solid var(--border);font-size:.85rem}.modal ul li:last-child{border-bottom:none}.modal ul li em{color:var(--text-secondary);font-size:.8rem}.modal ul li div{margin-bottom:.25rem}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary)}.login-container{background:var(--bg-secondary);padding:2rem;border-radius:12px;width:100%;max-width:400px;text-align:center}.login-container h1{color:var(--accent);font-size:1.5rem;margin-bottom:.5rem}.login-container p{color:var(--text-secondary);font-size:.875rem;margin-bottom:1.5rem}.login-container form{display:flex;flex-direction:column;gap:1rem}.login-container input[type=password]{background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem;color:var(--text-primary);font-size:1rem;text-align:center}.login-container input[type=password]:focus{outline:none;border-color:var(--accent)}.login-container button[type=submit]{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.75rem 1rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.login-container button[type=submit]:hover:not(:disabled){background:var(--accent-hover)}.login-container button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.login-error{background:#ef444433;color:var(--error);padding:.75rem;border-radius:6px;font-size:.875rem;margin-top:1rem}.loading-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary);gap:1rem}.loading-page .loading-spinner{width:32px;height:32px}.loading-page p{color:var(--text-secondary)}.sidebar-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.sidebar-header h1{margin-bottom:0}.logout-btn{background:transparent;border:1px solid var(--border);color:var(--text-secondary);padding:.25rem .5rem;border-radius:4px;font-size:.7rem;cursor:pointer;transition:all .2s}.logout-btn:hover{background:var(--error);border-color:var(--error);color:#fff}
