:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#213547;background-color:#f8fafc;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;color:#213547}@media(prefers-color-scheme:dark){:root{color:#213547;background-color:#f8fafc}}.btn.small{padding:8px 16px;font-size:.875rem;width:auto!important;margin-top:0!important}.btn.secondary{background:#fff!important;color:#475569!important;border:1px solid #e2e8f0!important}.btn.secondary:hover{background:#f8fafc!important;border-color:#cbd5e1!important}.form-input{width:100%;padding:12px;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:all .2s;box-sizing:border-box}.form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.user-menu[data-v-1c16db09]{position:relative}.user-info[data-v-1c16db09]{display:flex;align-items:center;gap:10px;padding:8px 16px;background:#f3f4f6;border-radius:20px;cursor:pointer;transition:all .3s ease;border:1px solid #e5e7eb}.user-info[data-v-1c16db09]:hover{background:#e5e7eb;transform:translateY(-1px)}.user-avatar[data-v-1c16db09]{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:.9rem}.username[data-v-1c16db09]{font-weight:500;color:#333;font-size:.95rem}.dropdown-icon[data-v-1c16db09]{transition:transform .3s ease;color:#666}.dropdown-icon.open[data-v-1c16db09]{transform:rotate(180deg)}.dropdown-menu[data-v-1c16db09]{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000026;min-width:220px;overflow:hidden;z-index:1000}.menu-item[data-v-1c16db09]{padding:12px 16px;cursor:pointer;transition:background .2s ease}.menu-item[data-v-1c16db09]:hover:not(.user-details){background:#f5f5f5}.user-details[data-v-1c16db09]{cursor:default;background:#fafafa}.detail-label[data-v-1c16db09]{font-size:.75rem;color:#999;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.detail-value[data-v-1c16db09]{font-size:.9rem;color:#333;word-break:break-all}.menu-divider[data-v-1c16db09]{height:1px;background:#e0e0e0}.logout-btn[data-v-1c16db09]{display:flex;align-items:center;gap:10px;width:100%;border:none;background:none;color:#c33;font-weight:500;font-size:.9rem}.logout-btn[data-v-1c16db09]:hover{background:#fee!important}.logout-btn svg[data-v-1c16db09]{stroke:currentColor}.dropdown-enter-active[data-v-1c16db09],.dropdown-leave-active[data-v-1c16db09]{transition:all .3s ease}.dropdown-enter-from[data-v-1c16db09],.dropdown-leave-to[data-v-1c16db09]{opacity:0;transform:translateY(-10px)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100vh;background:#f8f9fa}.app-header{background:#fff;border-bottom:1px solid #e0e0e0;padding:20px 40px;box-shadow:0 2px 8px #0000000d}.header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.logo-section h1{font-size:1.5rem;font-weight:700;background:linear-gradient(135deg,#6366f1,#a855f7);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:4px}.logo-section p{font-size:.85rem;color:#666}.auth-container[data-v-9bb549c9]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.auth-card[data-v-9bb549c9]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:40px;width:100%;max-width:450px;box-shadow:0 20px 60px #0000004d;animation:slideUp-9bb549c9 .5s ease-out}@keyframes slideUp-9bb549c9{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.auth-header[data-v-9bb549c9]{text-align:center;margin-bottom:30px}.auth-header h1[data-v-9bb549c9]{font-size:2rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:8px}.auth-header p[data-v-9bb549c9]{color:#666;font-size:.95rem}.auth-form[data-v-9bb549c9]{display:flex;flex-direction:column;gap:20px}.form-group[data-v-9bb549c9]{display:flex;flex-direction:column;gap:8px}.form-group label[data-v-9bb549c9]{font-weight:600;color:#333;font-size:.9rem}.form-group input[data-v-9bb549c9]{padding:12px 16px;border:2px solid #e0e0e0;border-radius:10px;font-size:1rem;transition:all .3s ease;background:#fff}.form-group input[data-v-9bb549c9]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input[data-v-9bb549c9]:disabled{background:#f5f5f5;cursor:not-allowed}.error-message[data-v-9bb549c9]{background:#fee;color:#c33;padding:12px 16px;border-radius:10px;font-size:.9rem;border-left:4px solid #c33}.submit-btn[data-v-9bb549c9]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:14px;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:10px}.submit-btn[data-v-9bb549c9]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 25px #667eea66}.submit-btn[data-v-9bb549c9]:active:not(:disabled){transform:translateY(0)}.submit-btn[data-v-9bb549c9]:disabled{opacity:.6;cursor:not-allowed}.auth-footer[data-v-9bb549c9]{text-align:center;margin-top:25px;padding-top:25px;border-top:1px solid #e0e0e0}.auth-footer p[data-v-9bb549c9]{color:#666;font-size:.9rem}.auth-footer a[data-v-9bb549c9]{color:#667eea;text-decoration:none;font-weight:600;transition:color .3s ease}.auth-footer a[data-v-9bb549c9]:hover{color:#764ba2}.auth-container[data-v-240533f1]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.auth-card[data-v-240533f1]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:40px;width:100%;max-width:450px;box-shadow:0 20px 60px #0000004d;animation:slideUp-240533f1 .5s ease-out}@keyframes slideUp-240533f1{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.auth-header[data-v-240533f1]{text-align:center;margin-bottom:30px}.auth-header h1[data-v-240533f1]{font-size:2rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:8px}.auth-header p[data-v-240533f1]{color:#666;font-size:.95rem}.auth-form[data-v-240533f1]{display:flex;flex-direction:column;gap:18px}.form-group[data-v-240533f1]{display:flex;flex-direction:column;gap:8px}.form-group label[data-v-240533f1]{font-weight:600;color:#333;font-size:.9rem}.form-group input[data-v-240533f1]{padding:12px 16px;border:2px solid #e0e0e0;border-radius:10px;font-size:1rem;transition:all .3s ease;background:#fff}.form-group input[data-v-240533f1]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input[data-v-240533f1]:disabled{background:#f5f5f5;cursor:not-allowed}.error-message[data-v-240533f1]{background:#fee;color:#c33;padding:12px 16px;border-radius:10px;font-size:.9rem;border-left:4px solid #c33}.submit-btn[data-v-240533f1]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:14px;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:10px}.submit-btn[data-v-240533f1]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 25px #667eea66}.submit-btn[data-v-240533f1]:active:not(:disabled){transform:translateY(0)}.submit-btn[data-v-240533f1]:disabled{opacity:.6;cursor:not-allowed}.auth-footer[data-v-240533f1]{text-align:center;margin-top:25px;padding-top:25px;border-top:1px solid #e0e0e0}.auth-footer p[data-v-240533f1]{color:#666;font-size:.9rem}.auth-footer a[data-v-240533f1]{color:#667eea;text-decoration:none;font-weight:600;transition:color .3s ease}.auth-footer a[data-v-240533f1]:hover{color:#764ba2}.schema-builder[data-v-e492e78a]{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 6px #0000000d;margin-bottom:2rem;position:relative}.header[data-v-e492e78a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.header h3[data-v-e492e78a]{font-size:1.25rem;font-weight:600;color:#1f2937;display:flex;align-items:center;gap:.5rem;margin:0}.empty-state[data-v-e492e78a]{text-align:center;padding:2rem;background:#f9fafb;border-radius:8px;border:2px dashed #e5e7eb;color:#6b7280}.tables-list[data-v-e492e78a]{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:flex-start;overflow:visible}.table-card[data-v-e492e78a]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem .75rem 2rem;transition:all .2s;overflow:visible;flex:0 1 auto;min-width:450px;max-width:100%}.table-card[data-v-e492e78a]:hover{box-shadow:0 4px 6px -1px #0000001a;border-color:#cbd5e1}.table-header[data-v-e492e78a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid #e2e8f0}.header-actions[data-v-e492e78a]{display:flex;gap:.5rem;align-items:center}.table-name-input[data-v-e492e78a]{font-weight:600;font-size:1.1rem;border:none;background:transparent;flex:1;color:#1e293b;padding:.25rem;min-width:0}.table-name-input[data-v-e492e78a]:focus{outline:none;border-bottom:2px solid #3b82f6}.error-message[data-v-e492e78a]{color:#ef4444;font-size:.8rem;margin-bottom:.75rem;padding:.5rem;background:#fee2e2;border-radius:4px}.table-header-view[data-v-e492e78a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #3b82f6}.table-name-display[data-v-e492e78a]{font-weight:700;font-size:1.2rem;color:#1e293b;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.columns-view[data-v-e492e78a]{display:flex;flex-direction:column;gap:.5rem}.column-view-row[data-v-e492e78a]{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:#fff;border-radius:4px;border:1px solid #e2e8f0}.col-name[data-v-e492e78a]{font-weight:500;color:#334155}.col-type-badge[data-v-e492e78a]{background:#dbeafe;color:#1e40af;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.columns-list[data-v-e492e78a]{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.column-row[data-v-e492e78a]{display:flex;align-items:center;gap:6px;position:relative;overflow:visible;padding:4px 0}.column-input-wrapper[data-v-e492e78a]{position:relative;flex:1;min-width:120px;max-width:200px}.row-error-tooltip[data-v-e492e78a]{position:absolute;top:-24px;left:0;background:#ef4444;color:#fff;font-size:.65rem;padding:2px 8px;border-radius:4px;white-space:nowrap;z-index:20;pointer-events:none}.row-error-tooltip[data-v-e492e78a]:after{content:"";position:absolute;bottom:-4px;left:10px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #ef4444}.col-name-input[data-v-e492e78a]{width:100%;padding:.4rem .5rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.85rem}.input-error[data-v-e492e78a]{border-color:#ef4444!important;background-color:#fef2f2!important}.general-table-error[data-v-e492e78a]{margin-top:4px;font-weight:600}.custom-select-wrapper[data-v-e492e78a]{position:relative;width:100px;flex-shrink:0}.column-row.z-elevate[data-v-e492e78a]{z-index:100}.custom-select[data-v-e492e78a]{width:100%;padding:.35rem .5rem;border:1px solid #e2e8f0;border-radius:4px;font-size:.75rem;background:#fff;color:#64748b;cursor:pointer;display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none;transition:all .2s}.custom-select[data-v-e492e78a]:hover{border-color:#cbd5e1;background:#f8fafc}.custom-select.active[data-v-e492e78a]{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.selected-value[data-v-e492e78a]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-arrow[data-v-e492e78a]{font-size:.6rem;margin-left:.25rem;transition:transform .2s}.custom-select.active .dropdown-arrow[data-v-e492e78a]{transform:rotate(180deg)}@keyframes spin-e492e78a{to{transform:rotate(360deg)}}.type-param-input[data-v-e492e78a],.type-params-group[data-v-e492e78a]{display:flex;align-items:center;gap:1px;background:#f1f5f9;padding:1px 4px;border-radius:4px;border:1px solid #e2e8f0;height:28px}.param-input-field[data-v-e492e78a]{width:40px;border:none;background:transparent;font-size:.75rem;padding:0;text-align:center;color:#1e40af;font-weight:700;appearance:textfield}.param-input-field[data-v-e492e78a]:focus{outline:none;background:#fff;border-radius:2px}.param-input-field[data-v-e492e78a]::-webkit-inner-spin-button,.param-input-field[data-v-e492e78a]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.paren[data-v-e492e78a],.comma[data-v-e492e78a]{color:#94a3b8;font-weight:800;font-size:.75rem}.dropdown-menu[data-v-e492e78a]{position:absolute;top:calc(100% + 4px);right:0;min-width:130px;background:#fff!important;border:1px solid #cbd5e1;border-radius:6px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;z-index:1000;max-height:250px;overflow-y:auto;animation:dropdownSlide-e492e78a .2s ease-out}@keyframes dropdownSlide-e492e78a{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-group[data-v-e492e78a]{padding:.25rem 0}.dropdown-group[data-v-e492e78a]:not(:last-child){border-bottom:1px solid #f1f5f9}.group-label[data-v-e492e78a]{padding:.4rem .75rem;font-size:.65rem;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;background:#f8fafc}.dropdown-option[data-v-e492e78a]{padding:.5rem .75rem;font-size:.75rem;color:#475569;cursor:pointer;transition:all .15s;white-space:nowrap}.dropdown-option[data-v-e492e78a]:hover{background:#eff6ff;color:#1e40af;font-weight:500}.btn-primary-sm[data-v-e492e78a]{background:#2563eb;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-weight:500;cursor:pointer;transition:background .2s}.btn-primary-sm[data-v-e492e78a]:hover{background:#1d4ed8}.btn-save[data-v-e492e78a]{background:#10b981;color:#fff;border:none;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;transition:background .2s}.btn-save[data-v-e492e78a]:hover{background:#059669}.btn-edit[data-v-e492e78a]{background:#f59e0b;color:#fff;border:none;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;transition:background .2s}.btn-edit[data-v-e492e78a]:hover{background:#d97706}.btn-secondary-sm[data-v-e492e78a]{background:transparent;color:#3b82f6;border:1px dashed #3b82f6;padding:.4rem;border-radius:6px;font-size:.85rem;cursor:pointer;margin-top:.5rem;width:100%}.btn-secondary-sm[data-v-e492e78a]:hover{background:#eff6ff}.btn-danger-icon[data-v-e492e78a]{background:#fee2e2;color:#ef4444;border:none;width:28px;height:28px;border-radius:14px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.2rem;line-height:1}.btn-danger-icon[data-v-e492e78a]:hover{background:#fecaca}.btn-danger-icon-sm[data-v-e492e78a]{background:transparent;color:#94a3b8;border:none;font-size:1.2rem;cursor:pointer;padding:0 4px}.btn-danger-icon-sm[data-v-e492e78a]:hover{color:#ef4444}.constraints-toggles[data-v-e492e78a]{display:flex;gap:1px;background:#f1f5f9;padding:2px;border-radius:6px;border:1px solid #e2e8f0;flex-shrink:0}.toggle-btn[data-v-e492e78a]{background:transparent;border:none;color:#94a3b8;font-size:.65rem;font-weight:700;padding:2px 4px;border-radius:4px;cursor:pointer;transition:all .2s}.toggle-btn[data-v-e492e78a]:hover{background:#e2e8f0;color:#64748b}.toggle-btn.active[data-v-e492e78a]{background:#3b82f6;color:#fff}.constraint-details[data-v-e492e78a]{background:#fff;border:1px solid #e2e8f0;border-top:none;border-radius:0 0 6px 6px;padding:6px 10px;margin-top:-6px;margin-bottom:8px;display:flex;flex-direction:column;gap:6px;box-shadow:inset 0 2px 4px #00000005}.detail-input-group[data-v-e492e78a]{display:flex;align-items:center;gap:6px}.detail-input-group label[data-v-e492e78a]{font-size:.7rem;font-weight:600;color:#64748b;min-width:50px}.detail-input[data-v-e492e78a]{flex:1;padding:2px 6px;border:1px solid #e2e8f0;border-radius:4px;font-size:.75rem}.detail-input.sm[data-v-e492e78a]{max-width:100px}.fk-group span[data-v-e492e78a]{font-weight:700;color:#94a3b8}.fk-inputs[data-v-e492e78a]{display:flex;align-items:center;gap:4px;flex:1}.fk-info-hint[data-v-e492e78a]{font-size:.65rem;color:#94a3b8;font-style:italic;margin-left:8px}.column-view-group[data-v-e492e78a]{display:flex;flex-direction:column;margin-bottom:4px}.col-info[data-v-e492e78a]{display:flex;align-items:center;gap:4px}.mini-badge[data-v-e492e78a]{font-size:.6rem;font-weight:800;padding:1px 3px;border-radius:3px;text-transform:uppercase}.mini-badge.nn[data-v-e492e78a]{background:#fee2e2;color:#ef4444}.mini-badge.uq[data-v-e492e78a]{background:#fef3c7;color:#d97706}.mini-badge.def[data-v-e492e78a]{background:#dcfce7;color:#16a34a}.mini-badge.chk[data-v-e492e78a]{background:#e0f2fe;color:#0369a1}.mini-badge.fk[data-v-e492e78a]{background:#f3e8ff;color:#7e22ce}.constraint-icon[data-v-e492e78a]{margin-left:4px;font-size:.9rem}.column-view-details[data-v-e492e78a]{display:flex;flex-wrap:wrap;gap:8px;padding-left:10px;margin-top:2px}.detail-view[data-v-e492e78a]{font-size:.7rem;color:#64748b;font-style:italic;background:#f1f5f9;padding:0 4px;border-radius:2px}.save-section[data-v-e492e78a]{margin-top:1.5rem;display:flex;justify-content:center;padding-top:1rem;border-top:1px solid #e2e8f0}.btn-save-all[data-v-e492e78a]{background:#2563eb;color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #2563eb33}.btn-save-all[data-v-e492e78a]:hover{background:#1d4ed8;box-shadow:0 4px 8px #2563eb4d;transform:translateY(-1px)}.btn-save-all[data-v-e492e78a]:active{transform:translateY(0)}.interactive-schema[data-v-10a97b10]{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 6px #0000000d;margin-bottom:2rem}.header[data-v-10a97b10]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.header h3[data-v-10a97b10]{font-size:1.25rem;font-weight:600;color:#1f2937;display:flex;align-items:center;gap:.5rem;margin:0}.header-hint[data-v-10a97b10]{flex:1;display:flex;justify-content:flex-end;align-items:center;gap:1rem}.btn-reset[data-v-10a97b10]{background:#fff;border:1px solid #e2e8f0;color:#64748b;padding:.4rem .8rem;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.4rem}.btn-reset[data-v-10a97b10]:hover{background:#f8fafc;border-color:#cbd5e1;color:#1e293b}.hint-text[data-v-10a97b10]{font-size:.85rem;color:#6b7280;background:#f3f4f6;padding:.5rem 1rem;border-radius:6px;border-left:3px solid #3b82f6}.canvas-wrapper[data-v-10a97b10]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;overflow:auto;min-height:200px}.schema-svg[data-v-10a97b10]{width:100%;min-width:1200px;cursor:default}.table-group[data-v-10a97b10]{cursor:move;transition:opacity .2s}.table-group.dragging[data-v-10a97b10]{opacity:.7}.table-rect[data-v-10a97b10]{fill:#fff;stroke:#e2e8f0;stroke-width:2}.table-header[data-v-10a97b10]{fill:#3b82f6;stroke:none}.table-title[data-v-10a97b10]{fill:#fff;font-weight:700;font-size:14px;pointer-events:none}.column-group[data-v-10a97b10]{cursor:pointer;transition:all .2s}.column-rect[data-v-10a97b10]{fill:#fff;stroke:#e2e8f0;stroke-width:1;transition:all .2s}.column-group:hover .column-rect[data-v-10a97b10]{fill:#f8fafc;stroke:#cbd5e1}.column-group.column-dragging .column-rect[data-v-10a97b10]{fill:#dbeafe;stroke:#3b82f6;stroke-width:2}.column-group.column-drop-target .column-rect[data-v-10a97b10]{fill:#d1fae5;stroke:#10b981;stroke-width:2;animation:pulse-10a97b10 .5s ease-in-out infinite}@keyframes pulse-10a97b10{0%,to{opacity:1}50%{opacity:.7}}.column-name[data-v-10a97b10]{fill:#334155;font-size:12px;font-weight:500;pointer-events:none}.column-type[data-v-10a97b10]{fill:#1e40af;font-size:11px;font-weight:600;pointer-events:none}.drag-indicator[data-v-10a97b10]{fill:#94a3b8;font-size:10px;pointer-events:none}.relationship-group[data-v-10a97b10]{cursor:default}.relationship-line[data-v-10a97b10]{transition:all .2s;pointer-events:none}.relationship-group:hover .relationship-line[data-v-10a97b10]{stroke:#2563eb;stroke-width:3}.label-bg[data-v-10a97b10]{fill:#fff;stroke:#3b82f6;stroke-width:1}.relationship-label[data-v-10a97b10]{fill:#1e40af;font-size:10px;font-weight:600;pointer-events:none}.btn-remove-rel[data-v-10a97b10]{cursor:pointer;opacity:0;transition:opacity .2s}.relationship-group:hover .btn-remove-rel[data-v-10a97b10]{opacity:1}.btn-remove-rel:hover circle[data-v-10a97b10]{fill:#dc2626}.drag-line[data-v-10a97b10]{pointer-events:none}.modal-overlay[data-v-ab01ef65]{position:fixed;inset:0;background:#0f172ab3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-ab01ef65]{background:#fff;width:100%;max-width:450px;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;overflow:hidden;animation:modal-in-ab01ef65 .3s ease-out}@keyframes modal-in-ab01ef65{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-ab01ef65]{padding:20px 24px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}.modal-header h3[data-v-ab01ef65]{margin:0;font-size:1.25rem;color:#1e293b}.close-btn[data-v-ab01ef65]{background:none;border:none;font-size:24px;color:#64748b;cursor:pointer;padding:0;line-height:1}.modal-body[data-v-ab01ef65]{padding:24px}.form-group[data-v-ab01ef65]{display:flex;flex-direction:column;gap:8px}.form-group label[data-v-ab01ef65]{font-size:.875rem;font-weight:600;color:#475569}.form-input[data-v-ab01ef65]{padding:12px;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:all .2s}.form-input[data-v-ab01ef65]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.modal-footer[data-v-ab01ef65]{padding:16px 24px;background:#f8fafc;display:flex;justify-content:flex-end;gap:12px}.btn[data-v-ab01ef65]{padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;border:none}.btn.secondary[data-v-ab01ef65]{background:#e2e8f0;color:#475569}.btn.primary[data-v-ab01ef65]{background:#3b82f6;color:#fff}.btn[data-v-ab01ef65]:disabled{opacity:.5;cursor:not-allowed}.spinner[data-v-ab01ef65]{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-ab01ef65 .8s linear infinite;margin-right:8px}@keyframes spin-ab01ef65{to{transform:rotate(360deg)}}.modal-overlay[data-v-fdcde64b]{position:fixed;inset:0;background:#0f172ab3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-fdcde64b]{background:#fff;width:100%;max-width:500px;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;overflow:hidden;animation:modal-in-fdcde64b .3s ease-out;max-height:80vh;display:flex;flex-direction:column}@keyframes modal-in-fdcde64b{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-fdcde64b]{padding:20px 24px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.modal-header h3[data-v-fdcde64b]{margin:0;font-size:1.25rem;color:#1e293b}.close-btn[data-v-fdcde64b]{background:none;border:none;font-size:24px;color:#64748b;cursor:pointer;padding:0;line-height:1}.modal-body[data-v-fdcde64b]{padding:0;overflow-y:auto}.list-loading[data-v-fdcde64b],.empty-state[data-v-fdcde64b]{padding:40px;text-align:center;color:#64748b}.project-list[data-v-fdcde64b]{display:flex;flex-direction:column}.project-item[data-v-fdcde64b]{padding:16px 24px;border-bottom:1px solid #f1f5f9;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:background .2s}.project-item[data-v-fdcde64b]:hover{background:#f8fafc}.project-info[data-v-fdcde64b]{display:flex;flex-direction:column;gap:4px}.project-name[data-v-fdcde64b]{font-weight:600;color:#1e293b}.project-date[data-v-fdcde64b]{font-size:.75rem;color:#94a3b8}.delete-btn[data-v-fdcde64b]{background:none;border:none;font-size:1.1rem;cursor:pointer;padding:8px;border-radius:6px;opacity:0;transition:all .2s}.project-item:hover .delete-btn[data-v-fdcde64b]{opacity:1}.delete-btn[data-v-fdcde64b]:hover{background:#fee2e2}.spinner.dark[data-v-fdcde64b]{border-color:#1e293b1a;border-top-color:#1e293b}.spinner[data-v-fdcde64b]{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-fdcde64b .8s linear infinite;margin-right:8px}@keyframes spin-fdcde64b{to{transform:rotate(360deg)}}.query-input-container[data-v-81cc76b9]{display:flex;flex-direction:column;gap:24px;max-width:1000px;margin:0 auto}.project-actions[data-v-81cc76b9]{display:flex;justify-content:flex-end;align-items:center;gap:12px}.current-project[data-v-81cc76b9]{margin-right:auto;display:flex;align-items:center;gap:8px;background:#fff;padding:8px 16px;border-radius:12px;border:1px solid #e2e8f0;box-shadow:0 2px 4px #0000000d}.folder-icon[data-v-81cc76b9]{font-size:1.2rem}.project-name[data-v-81cc76b9]{font-weight:700;color:#1e293b;font-size:.95rem;letter-spacing:-.01em}.unload-btn[data-v-81cc76b9]{background:#fee2e2;color:#ef4444;border:none;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;font-weight:700;margin-left:4px;transition:all .2s}.unload-btn[data-v-81cc76b9]:hover{background:#fecaca;transform:scale(1.1)}.btn.secondary-project[data-v-81cc76b9]{background:#fff;border:1px solid #e2e8f0;color:#475569;width:auto;margin-top:0;padding:10px 18px;font-size:.9rem;box-shadow:0 1px 2px #0000000d}.btn.secondary-project[data-v-81cc76b9]:hover{background:#f8fafc;border-color:#cbd5e1;color:#1e293b}.card[data-v-81cc76b9]{background:linear-gradient(135deg,#fff,#f8fafc);padding:28px;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;border:1px solid rgba(226,232,240,.8);transition:all .3s ease}.card-header[data-v-81cc76b9]{display:flex;align-items:center;gap:16px;margin-bottom:16px}.icon-wrapper[data-v-81cc76b9]{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}.question-icon[data-v-81cc76b9]{background:linear-gradient(135deg,#4facfe,#00f2fe);box-shadow:0 4px 12px #4facfe66}h3[data-v-81cc76b9]{margin:0;font-size:1.25rem;font-weight:700;background:linear-gradient(135deg,#1e293b,#475569);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hint[data-v-81cc76b9]{margin:4px 0 0;color:#64748b;font-size:.875rem;font-weight:500}.question-input[data-v-81cc76b9]{width:100%;padding:14px;border:2px solid #e2e8f0;border-radius:10px;font-family:Inter,system-ui,sans-serif;font-size:1rem;resize:vertical;box-sizing:border-box;transition:all .3s ease;background:linear-gradient(135deg,#f0f9ff,#e0f2fe)}.question-input[data-v-81cc76b9]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.db-selector[data-v-81cc76b9]{margin-left:auto;display:flex;align-items:center;gap:8px;background:#fff;padding:6px 12px;border-radius:8px;border:1px solid #e2e8f0}.db-selector label[data-v-81cc76b9]{font-size:.8rem;font-weight:600;color:#64748b;text-transform:uppercase}.db-select[data-v-81cc76b9]{border:none;background:transparent;font-size:.9rem;font-weight:600;color:#1e293b;cursor:pointer;outline:none}.btn[data-v-81cc76b9]{width:100%;padding:14px 24px;border:none;border-radius:10px;cursor:pointer;font-weight:700;font-size:1rem;transition:all .3s ease;margin-top:16px;display:flex;align-items:center;justify-content:center;gap:8px}.btn[data-v-81cc76b9]:disabled{opacity:.6;cursor:not-allowed}.accent[data-v-81cc76b9]{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 12px #10b98166}.accent[data-v-81cc76b9]:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 16px #10b98180;transform:translateY(-2px)}.accent[data-v-81cc76b9]:active:not(:disabled){transform:translateY(0)}.spinner[data-v-81cc76b9]{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-81cc76b9 .8s linear infinite}@keyframes spin-81cc76b9{to{transform:rotate(360deg)}}.loading-hint[data-v-81cc76b9]{color:#64748b;font-size:.875rem;margin-top:12px;text-align:center;font-weight:500}.result-display[data-v-cf5f5910]{margin-top:24px}.card[data-v-cf5f5910]{background:#fff;padding:24px;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;border:1px solid #e2e8f0}.header[data-v-cf5f5910]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}h3[data-v-cf5f5910]{margin:0;color:#1e293b;font-size:1.1rem}.code-block[data-v-cf5f5910]{background:#1e293b;color:#e2e8f0;padding:20px;border-radius:8px;overflow-x:auto;font-family:Fira Code,monospace;margin:12px 0;font-size:.95rem;line-height:1.6}.validation-badge[data-v-cf5f5910]{padding:4px 10px;border-radius:6px;font-size:.8rem;font-weight:700}.valid[data-v-cf5f5910]{background:#d1fae5;color:#065f46}.invalid[data-v-cf5f5910]{background:#fee2e2;color:#991b1b}.error-msg[data-v-cf5f5910]{color:#dc2626;margin-top:10px;padding:12px;background:#fef2f2;border-radius:6px;border-left:4px solid #dc2626;font-size:.9rem}.actions[data-v-cf5f5910]{display:flex;gap:12px;margin-top:16px}.btn[data-v-cf5f5910]{padding:10px 16px;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;background:#fff;font-weight:600;font-size:.9rem;transition:all .2s;display:flex;align-items:center;gap:8px}.btn.secondary[data-v-cf5f5910]:hover{background:#f8fafc;border-color:#cbd5e1}.btn.optimization[data-v-cf5f5910]{background:#eff6ff;color:#2563eb;border-color:#bfdbfe}.btn.optimization[data-v-cf5f5910]:hover:not(:disabled){background:#dbeafe;border-color:#93c5fd}.suggestions-container[data-v-cf5f5910]{margin-top:24px;padding-top:24px;border-top:1px solid #e2e8f0}.suggestions-header[data-v-cf5f5910]{display:flex;align-items:center;gap:10px;margin-bottom:12px}.suggestions-header h4[data-v-cf5f5910]{margin:0;color:#334155;font-size:1rem}.summary[data-v-cf5f5910]{font-size:.9rem;color:#64748b;margin-bottom:16px;font-style:italic}.suggestions-list[data-v-cf5f5910]{display:flex;flex-direction:column;gap:12px}.suggestion-item[data-v-cf5f5910]{background:#f8fafc;padding:16px;border-radius:8px;border:1px solid #e2e8f0}.sug-header[data-v-cf5f5910]{display:flex;align-items:center;gap:12px;margin-bottom:8px}.sug-type[data-v-cf5f5910]{background:#334155;color:#fff;font-size:.75rem;padding:2px 8px;border-radius:4px;text-transform:uppercase;font-weight:700}.sug-table[data-v-cf5f5910]{font-weight:700;color:#1e293b;font-size:.9rem}.sug-columns[data-v-cf5f5910]{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.col-pill[data-v-cf5f5910]{background:#e2e8f0;color:#475569;padding:2px 8px;border-radius:4px;font-size:.8rem;font-weight:600;font-family:Fira Code,monospace}.sug-rationale[data-v-cf5f5910]{font-size:.85rem;color:#475569;line-height:1.5;margin:0}.no-suggestions[data-v-cf5f5910]{text-align:center;padding:20px;color:#94a3b8;font-size:.9rem;background:#f8fafc;border-radius:8px}.spinner[data-v-cf5f5910]{width:16px;height:16px;border:2px solid rgba(0,0,0,.1);border-top-color:currentColor;border-radius:50%;animation:spin-cf5f5910 .8s linear infinite}@keyframes spin-cf5f5910{to{transform:rotate(360deg)}}.main-page[data-v-d10df866]{min-height:calc(100vh - 100px);padding:40px 20px}.content-container[data-v-d10df866]{max-width:1200px;margin:0 auto}
