:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#1a1a2e;background-color:#f7f8fa;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%;height:100%}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;width:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:#f7f8fa;color:#1a1a2e}.top-nav{height:50px;background:#fff;border-bottom:1px solid #e8e8ef;display:flex;align-items:center;padding:0 24px;gap:10px;flex-shrink:0}.top-nav .nav-logo{font-size:13px;font-weight:800;color:#fff;background:linear-gradient(135deg,#4a6cf7,#6b8cff);border-radius:6px;padding:4px 8px;letter-spacing:.5px}.top-nav .nav-breadcrumb{font-size:14px;color:#8b8ba0;font-weight:400}.top-nav .nav-breadcrumb .nav-active{color:#1a1a2e;font-weight:600}.top-nav .nav-separator{color:#c0c0d0;font-size:14px;margin:0 2px}.top-nav .nav-dataset-badge{margin-left:auto;font-size:11px;font-weight:500;color:#6b6b80;background:#f0f0f8;border:1px solid #e0e0ea;border-radius:12px;padding:3px 10px}.nav-provider-status{display:flex;align-items:center;gap:5px;font-size:11px;color:#6b6b80;padding:3px 10px;border:1px solid #e0e0ea;border-radius:12px;background:#f9f9fc}.provider-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.provider-label{font-weight:500;white-space:nowrap}.nav-workspace-badge{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:500;color:#6b6b80;padding:3px 10px;border:1px solid #e0e0ea;border-radius:12px;background:#f9f9fc;cursor:pointer;transition:all .15s}.nav-workspace-badge:hover{border-color:#4a6cf7;color:#4a6cf7}.nav-workspace-badge.workspace-team{background:#eef2ff;border-color:#c7d2fe;color:#4a6cf7}.nav-workspace-badge.workspace-personal{background:#f0f0f8;border-color:#e0e0ea;color:#6b6b80}.workspace-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.workspace-team .workspace-dot{background:#4a6cf7}.workspace-personal .workspace-dot{background:#22c55e}.workspace-hint{font-size:10px;color:#8b8ba0;font-weight:400;margin-left:2px}.nav-metrics-btn{padding:5px 12px;font-size:11px;font-weight:500;color:#6b6b80;background:transparent;border:1px solid #e0e0ea;border-radius:6px;cursor:pointer;font-family:inherit;transition:all .15s}.nav-metrics-btn:hover{color:#4a6cf7;border-color:#4a6cf7;background:#f5f7ff}.team-section-label{font-size:11px;font-weight:600;color:#8b8ba0;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.team-workspace-toggle{display:flex;gap:8px;margin-bottom:20px}.team-workspace-toggle button{flex:1;padding:10px;border-radius:8px;border:1px solid #e0e0ea;background:#f9f9fc;font-size:13px;font-weight:500;color:#6b6b80;cursor:pointer;font-family:inherit;transition:all .15s}.team-workspace-toggle button.active{background:#4a6cf7;color:#fff;border-color:#4a6cf7}.team-workspace-toggle button:hover:not(.active){border-color:#4a6cf7;color:#4a6cf7}.team-invite-code{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#f0f0f8;border:1px solid #e0e0ea;border-radius:8px;margin-bottom:16px}.team-invite-code code{font-size:16px;font-weight:700;letter-spacing:2px;color:#1a1a2e;font-family:SF Mono,Fira Code,monospace}.team-invite-code button{margin-left:auto;padding:4px 10px;font-size:11px;font-weight:500;color:#4a6cf7;background:#fff;border:1px solid #4a6cf7;border-radius:6px;cursor:pointer;font-family:inherit;transition:all .15s}.team-invite-code button:hover{background:#4a6cf7;color:#fff}.team-member-list{list-style:none;padding:0;margin:0 0 16px}.team-member-list li{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f0f0f8;font-size:13px;color:#1a1a2e}.team-member-role{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:10px;background:#f0f0f8;color:#8b8ba0}.team-member-role.admin{background:#eef2ff;color:#4a6cf7}.metrics-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.metrics-card{background:#f9f9fc;border:1px solid #e8e8ef;border-radius:10px;padding:16px}.metrics-card-title{font-size:11px;font-weight:600;color:#8b8ba0;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.metrics-stat{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:13px}.metrics-stat-label{color:#6b6b80}.metrics-stat-value{font-weight:600;color:#1a1a2e}.metrics-status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}.nav-upload-btn{margin-left:8px;padding:5px 16px;font-size:11.5px;font-weight:600;color:#fff;background:#4a6cf7;border:none;border-radius:6px;cursor:pointer;font-family:inherit;transition:background .15s}.nav-upload-btn:hover{background:#3a5ce5}.nav-logout-btn{padding:6px 14px;font-size:12px;font-weight:500;color:#6b6b80;background:transparent;border:1px solid #e8e8ef;border-radius:6px;cursor:pointer;font-family:inherit;transition:all .15s}.nav-logout-btn:hover{color:#b91c1c;border-color:#fecaca;background:#fef2f2}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f0f2ff,#f7f8fa,#ecfdf5)}.auth-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000001a;padding:40px;width:380px;max-width:90vw;text-align:center}.auth-logo{display:inline-block;background:#4a6cf7;color:#fff;font-size:18px;font-weight:800;padding:8px 16px;border-radius:8px;margin-bottom:16px}.auth-title{font-size:22px;font-weight:700;color:#1a1a2e;margin:0 0 4px}.auth-tagline{font-size:13px;color:#6b6b80;line-height:1.5;margin:0 0 20px;padding:0 10px}.auth-subtitle{font-size:13px;color:#8b8fa3;margin:0 0 24px}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-input{padding:12px 14px;font-size:14px;font-family:inherit;border:1px solid #e8e8ef;border-radius:8px;outline:none;transition:border-color .15s}.auth-input:focus{border-color:#4a6cf7}.auth-btn{padding:12px;font-size:14px;font-weight:600;font-family:inherit;color:#fff;background:#4a6cf7;border:none;border-radius:8px;cursor:pointer;transition:background .15s}.auth-btn:hover{background:#3a5ce5}.auth-btn:disabled{background:#a0b0f0;cursor:wait}.auth-error{margin-top:12px;padding:10px;font-size:13px;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px}.auth-switch{margin-top:16px;font-size:13px;color:#8b8fa3}.auth-switch-btn{background:none;border:none;color:#4a6cf7;font-weight:600;cursor:pointer;font-family:inherit;font-size:13px}.auth-switch-btn:hover{color:#3a5ce5}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:2000;overflow:hidden;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:14px;box-shadow:0 20px 60px #0000002e;width:520px;max-width:90vw;max-height:85vh;overflow:hidden!important;animation:slideUp .2s ease-out;display:flex;flex-direction:column;scrollbar-width:none;-ms-overflow-style:none}.modal-content::-webkit-scrollbar{display:none}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid #e8e8ef}.modal-header h3{font-size:16px;font-weight:700;color:#1a1a2e;margin:0}.modal-close{background:none;border:none;font-size:22px;color:#8b8ba0;cursor:pointer;padding:0 4px;line-height:1;transition:color .15s}.modal-close:hover{color:#1a1a2e}.modal-body{padding:24px;flex:1;display:flex;flex-direction:column;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.modal-body::-webkit-scrollbar{display:none}.modal-description{font-size:13px;color:#6b6b80;line-height:1.6;margin:0 0 20px}.modal-description strong{color:#1a1a2e}.file-input-hidden{display:none}.file-upload-label{display:block;cursor:pointer}.file-upload-btn{display:block;text-align:center;padding:14px 20px;background:#f7f8fa;border:2px dashed #d0d0e0;border-radius:10px;font-size:13.5px;font-weight:500;color:#4a6cf7;transition:all .15s}.file-upload-btn:hover{background:#f0f2ff;border-color:#4a6cf7}.upload-status{margin-top:16px;padding:12px 16px;border-radius:8px;font-size:13px;line-height:1.5}.upload-success{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.upload-error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.upload-loading{background:#f0f2ff;color:#4a6cf7;border:1px solid #d8dfff;display:flex;align-items:center;gap:10px}.modal-wide{width:680px}.upload-mode-toggle{display:flex;gap:0;margin-bottom:20px;border:1px solid #e8e8ef;border-radius:8px;overflow:hidden}.upload-mode-toggle .mode-btn{flex:1;padding:10px 0;font-size:13px;font-weight:600;border:none;background:#f7f8fa;color:#6b6b80;cursor:pointer;transition:all .15s}.upload-mode-toggle .mode-btn.active{background:#4a6cf7;color:#fff}.upload-mode-toggle .mode-btn:hover:not(.active){background:#eef0f8}.step-indicator{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:16px}.step-dot{width:28px;height:28px;border-radius:50%;background:#e8e8ef;color:#8b8ba0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;transition:all .2s}.step-dot.active{background:#4a6cf7;color:#fff}.step-dot.completed{background:#047857;color:#fff}.step-line{width:40px;height:2px;background:#e8e8ef}.onboarding-step h4{font-size:15px;font-weight:700;color:#1a1a2e;margin:0 0 4px}.schema-tables-list{display:flex;flex-direction:column;gap:12px;max-height:340px;overflow-y:auto;margin-bottom:16px}.schema-table-card{border:1px solid #e8e8ef;border-radius:10px;padding:14px;background:#fafbfc}.table-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.table-name-input{font-size:14px;font-weight:600;border:1px solid transparent;border-radius:6px;padding:4px 8px;background:transparent;color:#1a1a2e;flex:1;transition:all .15s}.table-name-input:focus{border-color:#4a6cf7;outline:none;background:#fff}.table-record-count{font-size:11px;color:#8b8ba0;background:#e8e8ef;padding:2px 8px;border-radius:10px}.table-pk{font-size:12px;color:#6b6b80;margin-bottom:8px}.table-pk select{font-size:12px;border:1px solid #d0d0e0;border-radius:4px;padding:2px 6px;background:#fff;color:#1a1a2e}.pk-none{color:#b91c1c;font-style:italic}.table-columns{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:#e8e8ef;border-radius:12px;font-size:11.5px;color:#1a1a2e}.chip-remove{background:none;border:none;font-size:14px;color:#8b8ba0;cursor:pointer;padding:0 2px;line-height:1}.chip-remove:hover{color:#b91c1c}.relationships-list{display:flex;flex-direction:column;gap:10px;max-height:280px;overflow-y:auto;margin-bottom:16px}.relationship-card{display:flex;align-items:center;gap:12px;border:1px solid #e8e8ef;border-radius:10px;padding:12px;background:#fafbfc;transition:all .15s}.relationship-card.accepted{border-color:#a7f3d0;background:#f0fdf4}.relationship-card.rejected{opacity:.5}.rel-checkbox input{width:16px;height:16px;cursor:pointer;accent-color:#047857}.rel-info{flex:1;min-width:0}.rel-path{font-size:13px;font-weight:600;color:#1a1a2e;word-break:break-all}.rel-meta{display:flex;gap:6px;margin-top:4px}.rel-label-tag{font-size:10.5px;background:#e0e7ff;color:#3b5bdb;padding:1px 7px;border-radius:8px;font-weight:600}.rel-join{font-size:10.5px;background:#e8e8ef;color:#6b6b80;padding:1px 7px;border-radius:8px}.rel-reason{font-size:11px;color:#8b8ba0;margin-top:3px}.confidence-bar-wrap{width:60px;display:flex;flex-direction:column;align-items:center;gap:3px;flex-shrink:0}.confidence-bar-wrap .confidence-bar{height:5px;background:#4a6cf7;border-radius:3px;align-self:flex-start;position:relative;top:0}.confidence-bar-wrap .confidence-bar:after{content:"";display:block;width:60px;height:5px;background:#e8e8ef;border-radius:3px;position:absolute;top:0;left:0;z-index:-1}.confidence-pct{font-size:10px;color:#6b6b80;font-weight:600}.confidence-bar.confidence-strong{background:#047857}.confidence-bar.confidence-medium{background:#d97706}.rel-level{font-size:10px;padding:1px 7px;border-radius:8px;font-weight:600;text-transform:uppercase}.rel-level-strong{background:#d1fae5;color:#047857}.rel-level-medium{background:#fef3c7;color:#92400e}.no-relationships{font-size:13px;color:#8b8ba0;text-align:center;padding:20px;background:#fafbfc;border-radius:10px;border:1px dashed #d0d0e0;margin-bottom:16px}.dataset-name-input{margin-bottom:16px}.dataset-name-input label{display:block;font-size:12px;font-weight:600;color:#6b6b80;margin-bottom:6px}.dataset-name-input input{width:100%;padding:10px 12px;font-size:14px;border:1px solid #d0d0e0;border-radius:8px;color:#1a1a2e;background:#fff}.dataset-name-input input:focus{border-color:#4a6cf7;outline:none}.onboarding-actions{display:flex;justify-content:space-between;gap:12px}.btn-primary{padding:10px 24px;font-size:13px;font-weight:600;border:none;border-radius:8px;background:#4a6cf7;color:#fff;cursor:pointer;transition:background .15s}.btn-primary:hover:not(:disabled){background:#3b5bdb}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{padding:10px 24px;font-size:13px;font-weight:600;border:1px solid #d0d0e0;border-radius:8px;background:#fff;color:#6b6b80;cursor:pointer;transition:all .15s}.btn-secondary:hover{background:#f7f8fa;color:#1a1a2e}.app-container{display:flex;flex-direction:column;height:100vh;width:100vw}.main-content{display:flex;flex:1;overflow:hidden}.graph-panel{flex:1;position:relative;background-color:#f7f8fa;overflow:hidden}.cy-container{width:100%;height:100%;position:absolute;top:0;left:0}.graph-overlay-buttons{position:absolute;top:16px;left:16px;display:flex;gap:8px;z-index:20}.overlay-btn{display:flex;align-items:center;gap:6px;padding:7px 14px;background:#fff;border:1px solid #e0e0ea;border-radius:8px;font-size:12.5px;font-weight:500;color:#4a4a5a;cursor:pointer;transition:all .15s;box-shadow:0 1px 3px #0000000f;font-family:inherit}.overlay-btn:hover{background:#f0f0f8;border-color:#c8c8d8}.overlay-btn:disabled{opacity:.5;cursor:not-allowed}.overlay-btn .btn-icon{font-size:13px}.graph-empty-state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#9898a8;font-size:14px;pointer-events:none}.graph-empty-state .empty-icon{font-size:48px;margin-bottom:12px;opacity:.3}.graph-empty-state .empty-error{color:#b91c1c}.graph-empty-state .empty-warn{color:#92400e}.graph-empty-state .empty-info{color:#4a6cf7}.chat-panel{width:420px;background:#fff;border-left:1px solid #e8e8ef;display:flex;flex-direction:column;flex-shrink:0}.chat-header{padding:18px 20px 0}.chat-title{font-size:15px;font-weight:700;color:#1a1a2e;margin-bottom:2px}.chat-subtitle{font-size:12.5px;color:#8b8ba0;font-weight:400}.agent-identity{display:flex;align-items:center;gap:12px;padding:14px 20px}.agent-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#4a6cf7,#6b8cff);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px;flex-shrink:0}.agent-info .agent-name{font-size:13.5px;font-weight:600;color:#1a1a2e}.agent-info .agent-role{font-size:11.5px;color:#8b8ba0}.chat-messages{flex:1;overflow-y:auto;padding:0 20px 16px;display:flex;flex-direction:column;gap:14px}.chat-welcome{font-size:13.5px;color:#4a4a5a;line-height:1.55}.chat-welcome strong{font-weight:600}.welcome-examples{margin-top:10px;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:5px}.welcome-example-btn{background:none;border:1px solid #e4e6f0;border-radius:8px;padding:8px 12px;font-size:12.5px;color:#4a6cf7;cursor:pointer;text-align:left;font-family:inherit;width:100%;transition:all .15s}.welcome-example-btn:hover{background:#f0f2ff;border-color:#b8c4ff}.chat-user-msg{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.chat-user-label{font-size:11px;color:#8b8ba0;font-weight:500}.chat-user-bubble{background:#4a6cf7;color:#fff;padding:10px 14px;border-radius:14px 14px 4px;font-size:13px;line-height:1.5;max-width:90%;word-break:break-word}.chat-agent-msg{display:flex;flex-direction:column;gap:6px}.chat-agent-header{display:flex;align-items:center;gap:8px}.agent-avatar-sm{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#4a6cf7,#6b8cff);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:8px;flex-shrink:0}.agent-name-sm{font-size:12px;font-weight:600;color:#1a1a2e}.chat-agent-bubble{background:#f5f6f8;border:1px solid #e8e8ef;color:#1a1a2e;padding:12px 14px;border-radius:4px 14px 14px;font-size:13.5px;line-height:1.6;max-width:95%;word-break:break-word}.chat-response{display:flex;flex-direction:column;gap:6px}.result-card{background:#f8f9fb;border:1px solid #ecedf2;border-radius:10px;padding:12px 14px;font-size:13px}.result-card .result-card-title{font-size:11px;font-weight:600;color:#8b8ba0;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.result-card .result-row{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0;border-bottom:1px solid #f0f0f5;gap:12px}.result-card .result-row:last-child{border-bottom:none}.result-card .result-label{color:#6b6b80;font-size:12px}.result-card .result-value{color:#1a1a2e;font-weight:500;font-size:12px;text-align:right;max-width:60%;word-break:break-word}.chat-error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;padding:10px 14px;border-radius:10px;font-size:13px;line-height:1.5}.suggestion-section{display:flex;flex-direction:column;gap:6px}.suggestion-label{font-size:12px;color:#6b6b80;font-weight:500}.suggestion-chips{display:flex;flex-wrap:wrap;gap:6px}.suggestion-chip{padding:6px 12px;font-size:12px;background:#f0f2ff;color:#4a6cf7;border:1px solid #d8dfff;border-radius:20px;cursor:pointer;transition:all .15s;font-family:inherit;font-weight:500}.suggestion-chip:hover{background:#e0e5ff;border-color:#b8c4ff}.chat-info{background:#fffbeb;border:1px solid #fde68a;color:#92400e;padding:10px 14px;border-radius:10px;font-size:13px;line-height:1.5}.chat-loading{display:flex;align-items:center;gap:10px;color:#4a6cf7;font-size:13px;font-weight:500;padding:8px 0}.chat-loading .dot-pulse{display:inline-flex;gap:4px}.chat-loading .dot-pulse span{width:6px;height:6px;background:#4a6cf7;border-radius:50%;animation:dotPulse 1.2s ease-in-out infinite}.chat-loading .dot-pulse span:nth-child(2){animation-delay:.2s}.chat-loading .dot-pulse span:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.response-badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.query-type-badge{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.5px;padding:2px 8px;border-radius:4px;text-transform:uppercase}.badge-sql{background:#e8f4fd;color:#1a6db0}.badge-rag{background:#ecfdf5;color:#047857}.badge-hybrid{background:#fef3e2;color:#92400e}.badge-fallback{background:#f3f4f6;color:#6b7280}.badge-simple{background:#ecfdf5;color:#047857}.badge-moderate{background:#fef3c7;color:#92400e}.badge-complex{background:#fee2e2;color:#b91c1c}.badge-rule{background:#f0fdf4;color:#166534}.badge-llm{background:#eff6ff;color:#1d4ed8}.badge-fallback-plan{background:#f3f4f6;color:#6b7280}.badge-confidence-high{background:#ecfdf5;color:#047857}.badge-confidence-medium{background:#fffbeb;color:#b45309}.badge-confidence-low{background:#fef2f2;color:#b91c1c}.badge-timing{background:#f5f3ff;color:#6d28d9}.confidence-badge{display:inline-block;font-size:10px;font-weight:600;padding:2px 8px;border-radius:4px}.confidence-badge-high{background:#d1fae5;color:#047857}.confidence-badge-medium{background:#fef3c7;color:#92400e}.confidence-badge-low{background:#fee2e2;color:#b91c1c}.confidence-reasons{font-size:10.5px;color:#b0b0c0;line-height:1.5}.response-context{font-size:11px;color:#8b8fa3;margin:0;padding:0}.response-details{margin-top:4px}.details-toggle{font-size:11.5px;color:#6366f1;cursor:pointer;font-weight:500;-webkit-user-select:none;user-select:none;padding:4px 0;list-style:none}.details-toggle::-webkit-details-marker{display:none}.details-toggle:before{content:"▸ ";font-size:10px}.response-details[open] .details-toggle:before{content:"▾ "}.details-toggle:hover{color:#4f46e5}.response-details[open] .details-toggle{margin-bottom:10px}.response-details>.result-card{margin-bottom:10px}.response-details>.result-card:last-child{margin-bottom:0}.explanation-summary{font-size:12.5px;color:#6b6b80;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #f0f0f5;line-height:1.5}.chat-input-area{padding:14px 20px;border-top:1px solid #e8e8ef;background:#fff}.chat-status{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#8b8ba0;margin-bottom:8px}.chat-status .status-dot{width:7px;height:7px;border-radius:50%;background:#34d399;transition:background .3s}.chat-status .status-dot.busy{background:#f59e0b;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.chat-input-wrapper{display:flex;align-items:flex-end;gap:8px}.chat-input-wrapper textarea{flex:1;min-height:40px;max-height:100px;padding:10px 14px;border:1px solid #e0e0ea;border-radius:10px;font-size:13.5px;resize:none;background:#f9f9fc;font-family:inherit;line-height:1.4;transition:border-color .2s,background .2s,box-shadow .2s;color:#1a1a2e}.chat-input-wrapper textarea::placeholder{color:#a0a0b0}.chat-input-wrapper textarea:focus{outline:none;border-color:#4a6cf7;background:#fff;box-shadow:0 0 0 3px #4a6cf714}.send-btn{height:40px;padding:0 18px;background:#4a6cf7;color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s;font-family:inherit;white-space:nowrap;flex-shrink:0}.send-btn:hover:not(:disabled){background:#3a5ce5}.send-btn:disabled{background:#c8c8d8;cursor:not-allowed}.sql-toggle{margin-bottom:8px}.sql-toggle label{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#8b8ba0;cursor:pointer;-webkit-user-select:none;user-select:none}.sql-toggle input[type=checkbox]{cursor:pointer;accent-color:#4a6cf7}.sql-block{font-family:Courier New,Courier,monospace;font-size:11px;color:#1a1a2e;background:#eef0f5;border-radius:6px;padding:10px;margin-top:6px;white-space:pre-wrap;word-break:break-word;line-height:1.5;overflow-x:auto}.node-tooltip{position:absolute;background:#fff;box-shadow:0 8px 30px #0000001f;border:1px solid #e8e8ef;border-radius:10px;padding:16px;width:320px;z-index:1000;pointer-events:auto;cursor:grab;-webkit-user-select:none;user-select:none}.node-tooltip:active{cursor:grabbing}.node-tooltip h4{margin:0 0 10px;color:#1a1a2e;font-size:14px;font-weight:600}.node-tooltip .tooltip-body{display:flex;flex-direction:column;gap:2px;max-height:400px;overflow-y:auto}.node-tooltip .tooltip-line{font-size:12px;color:#1a1a2e;line-height:1.6;word-break:break-word}.node-tooltip .tooltip-key{font-weight:600;color:#4a4a5a}.node-tooltip .tooltip-hidden{font-size:11px;color:#a0a8c0;font-style:italic;margin-top:4px;padding-top:4px;border-top:1px solid #f0f0f5}.node-tooltip .tooltip-connections{font-size:12px;font-weight:600;color:#4a6cf7;margin-top:6px;padding-top:6px;border-top:1px solid #f0f0f5}.error-boundary{display:flex;align-items:center;justify-content:center;height:100vh;width:100vw;background:#f7f8fa}.error-boundary-content{text-align:center;max-width:400px;padding:40px}.error-boundary-content h2{font-size:20px;color:#1a1a2e;margin-bottom:8px}.error-boundary-content p{font-size:14px;color:#6b6b80;margin-bottom:20px;line-height:1.5}.error-boundary-content button{padding:10px 24px;background:#4a6cf7;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s}.error-boundary-content button:hover{background:#3a5ce5}.chat-messages::-webkit-scrollbar,.schema-tables-list::-webkit-scrollbar,.relationships-list::-webkit-scrollbar{width:5px}.chat-messages::-webkit-scrollbar-track,.schema-tables-list::-webkit-scrollbar-track,.relationships-list::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb,.schema-tables-list::-webkit-scrollbar-thumb,.relationships-list::-webkit-scrollbar-thumb{background:#d0d0e0;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover,.schema-tables-list::-webkit-scrollbar-thumb:hover,.relationships-list::-webkit-scrollbar-thumb:hover{background:#b0b0c0}.documents-section{display:flex;flex-direction:column;gap:14px;flex:1}.document-list{max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;margin-top:4px}.document-card{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#f7f8fa;border:1px solid #e8e8ef;border-radius:8px;transition:border-color .15s}.document-card:hover{border-color:#6366f1}.document-info{display:flex;align-items:center;gap:10px;overflow:hidden}.doc-chip{display:inline-block;padding:2px 8px;font-size:10px;font-weight:700;letter-spacing:.5px;border-radius:4px;background:#6366f1;color:#fff;flex-shrink:0}.document-title{font-size:13px;font-weight:500;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.document-meta{font-size:11px;color:#8b8fa3;flex-shrink:0}.doc-delete-btn{background:none;border:none;color:#8b8fa3;font-size:18px;cursor:pointer;padding:0 4px;line-height:1;transition:color .15s}.doc-delete-btn:hover{color:#ef4444}.no-documents{text-align:center;padding:24px 16px;color:#8b8fa3;font-size:13px;background:#f7f8fa;border-radius:8px;border:1px dashed #d0d0e0}.btn-primary{padding:8px 16px;font-size:12px;font-weight:600;color:#fff;background:#4a6cf7;border:none;border-radius:6px;cursor:pointer;font-family:inherit;transition:background .15s}.btn-primary:hover{background:#3a5ce5}.btn-primary:disabled{background:#a0b0f0;cursor:wait}.btn-secondary{padding:8px 16px;font-size:12px;font-weight:500;color:#6b6b80;background:transparent;border:1px solid #e8e8ef;border-radius:6px;cursor:pointer;font-family:inherit;transition:all .15s}.btn-secondary:hover{color:#4a6cf7;border-color:#4a6cf7;background:#f5f7ff}.btn-danger{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .15s}.btn-danger:hover{background:#fee2e2}.btn-link{background:none;border:none;color:#8b8ba0;cursor:pointer;font-size:13px;padding:0;font-family:inherit;margin-bottom:12px;display:inline-block}.btn-link:hover{color:#4a6cf7}.btn-full{width:100%}.error-banner{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;padding:8px 12px;border-radius:8px;font-size:13px;margin-bottom:12px}.input-field{width:100%;padding:10px 14px;border-radius:8px;border:1px solid #e0e0ea;font-size:14px;font-family:inherit;color:#1a1a2e;box-sizing:border-box}.input-field:focus{outline:none;border-color:#4a6cf7;box-shadow:0 0 0 3px #4a6cf71a}.input-mono{font-family:SF Mono,Fira Code,monospace}.text-center{text-align:center}.mt-12{margin-top:12px}.mb-16{margin-bottom:16px}.modal-narrow{max-width:480px}.modal-wide{max-width:540px}.team-org-card{border:1px solid #e0e0ea;border-radius:10px;padding:16px}.team-org-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.team-org-name{font-size:16px;font-weight:700;color:#1a1a2e}.team-org-count{font-size:12px;color:#8b8ba0;margin-top:2px}.team-empty-state{padding:20px 0}.team-empty-message{font-size:14px;color:#6b6b80;margin-bottom:16px}.team-empty-actions{display:flex;gap:8px;justify-content:center}.team-form-title{font-size:14px;font-weight:600;color:#1a1a2e;margin-bottom:12px}.metrics-layout{display:flex;flex-direction:column;gap:16px}.metrics-card-full{grid-column:1 / -1}.metrics-loading{padding:20px;color:#8b8ba0}.metrics-big-value{font-size:20px;font-weight:700;color:#1a1a2e}.metrics-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.metrics-grid-4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px}.metrics-grid-4 .metrics-big-value{font-size:18px}.metrics-redis-status{margin-top:10px;font-size:12px;color:#8b8ba0}.metrics-redis-status span{font-weight:600}.metrics-type-label{text-transform:uppercase}.color-success{color:#22c55e}.color-warning{color:#f59e0b}.color-danger{color:#ef4444}.color-primary{color:#4a6cf7}
