:root{--font:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--nav-bg:#fff;--nav-border:#00000014;--nav-icon:#94a3b8;--nav-icon-active:#6366f1;--nav-active-bg:#eef2ff;--gradient-bg:linear-gradient(135deg, #eef2ff 0%, #e8e0f0 40%, #dbeafe 100%);--glass-bg:#ffffffb3;--glass-bg-strong:#ffffffd9;--glass-border:#0000000f;--glass-blur:blur(12px);--surface-bg:#fff;--surface-hover:#f1f3f9;--surface-border:#00000014;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#64748b;--text-dim:#94a3b8;--text-on-accent:#fff;--accent:#6366f1;--accent-hover:#4f46e5;--accent-light:#6366f114;--accent-light-2:#6366f11f;--accent-text:#4f46e5;--accent-gradient:linear-gradient(135deg, #6366f1, #8b5cf6);--success:#10b981;--success-light:#ecfdf5;--error:#ef4444;--error-light:#fef2f2;--warning:#f59e0b;--warning-light:#fffbeb;--info:#3b82f6;--info-light:#eff6ff;--code-bg:#1e293b;--code-text:#a5f3fc;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000a;--shadow-accent:0 2px 8px #6366f14d;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:99px;--transition:.15s ease;--transition-slow:.3s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{font-family:var(--font);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f0f0f5;height:100%;overflow:hidden}#app{height:100%}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:600}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#00000014;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000024}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.btn{border-radius:var(--radius-md);height:40px;font-size:14px;font-weight:500;font-family:var(--font);cursor:pointer;transition:all var(--transition);white-space:nowrap;border:none;outline:none;align-items:center;gap:7px;padding:0 18px;text-decoration:none;display:inline-flex}.btn svg{stroke:currentColor;fill:none;stroke-width:2px;flex-shrink:0;width:15px;height:15px}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}.btn--primary{background:var(--accent-gradient);color:var(--text-on-accent);box-shadow:var(--shadow-accent)}.btn--primary:hover:not(:disabled){transform:scale(1.02);box-shadow:0 4px 12px #6366f166}.btn--primary:active:not(:disabled){transform:scale(.98)}.btn--ghost{color:var(--text-muted);border:1px solid var(--surface-border);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text-secondary);border-color:#00000024}.btn--secondary{background:var(--surface-bg);color:var(--text-secondary);border:1px solid var(--surface-border)}.btn--secondary:hover:not(:disabled){background:var(--surface-hover);border-color:#00000024}.btn--danger{color:var(--error);border:1px solid var(--error);background:0 0}.btn--danger:hover:not(:disabled){background:var(--error);color:#fff}.btn--outline-accent{color:var(--accent-text);border:1px solid var(--accent);background:0 0}.btn--outline-accent:hover:not(:disabled){background:var(--accent-light)}.lang-btn{border-radius:var(--radius-md);border:1px solid var(--surface-border);background:var(--surface-bg);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);font-size:13px;font-weight:500;font-family:var(--font);align-items:center;gap:6px;padding:6px 12px;display:flex}.lang-btn:hover{border-color:var(--accent);color:var(--accent-text)}.lang-btn svg{stroke:currentColor;fill:none;stroke-width:2px;width:14px;height:14px}.form-field{flex-direction:column;gap:6px;display:flex}.form-field--full{grid-column:1/-1}.form-field__label{color:var(--text-secondary);align-items:center;gap:4px;font-size:13px;font-weight:500;display:flex}.form-field__req{color:var(--error);font-size:12px}.form-field__wrapper{align-items:center;display:flex;position:relative}.form-field__input{border:1px solid var(--surface-border);border-radius:var(--radius-md);background:var(--surface-bg);height:40px;font-size:14px;font-family:var(--font);color:var(--text-primary);transition:all var(--transition);outline:none;width:100%;padding:0 12px}.form-field__input::placeholder{color:var(--text-dim)}.form-field__input:hover{border-color:#00000029}.form-field__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.form-field__input--has-action{padding-right:40px}.form-field__action{cursor:pointer;color:var(--text-dim);transition:color var(--transition);background:0 0;border:none;align-items:center;padding:4px;display:flex;position:absolute;right:10px}.form-field__action:hover{color:var(--accent)}.form-field__action svg{stroke:currentColor;fill:none;stroke-width:2px;width:15px;height:15px}.form-field__hint{color:var(--text-dim);font-size:12px;line-height:1.4}.form-field-group{display:flex}.form-field-group .form-field__input:first-child{border-radius:var(--radius-md) 0 0 var(--radius-md);border-right:none;flex:1}.form-field-group__port{border-radius:0 var(--radius-md) var(--radius-md) 0;text-align:center;border:1px solid var(--surface-border);background:var(--surface-bg);width:96px;height:40px;font-size:14px;font-family:var(--font);color:var(--text-primary);transition:all var(--transition);outline:none;flex-shrink:0;padding:0 12px}.form-field-group__port:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light);z-index:1;position:relative}.wizard-area{background:var(--gradient-bg);flex-direction:column;flex:1;display:flex;overflow:hidden}.wizard-header{background:var(--glass-bg-strong);height:56px;-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--glass-border);flex-shrink:0;align-items:center;gap:12px;padding:0 32px;display:flex}.wizard-header__logo{align-items:center;gap:10px;text-decoration:none;display:flex}.wizard-header__logo svg{width:20px;height:20px;stroke:var(--accent);fill:none;stroke-width:2px}.wizard-header__logo-text{color:var(--text-primary);font-size:15px;font-weight:600}.wizard-header__sep{background:var(--surface-border);width:1px;height:20px}.wizard-header__title{color:var(--text-muted);font-size:14px;font-weight:500}.wizard-header__spacer{flex:1}.wizard-content{flex-direction:column;flex:1;align-items:center;padding:48px 24px;display:flex;overflow-y:auto}.stepper{align-items:center;margin-bottom:40px;display:flex}.stepper__step{align-items:center;gap:10px;display:flex}.stepper__number{border:2px solid var(--glass-border);width:32px;height:32px;color:var(--text-muted);transition:all var(--transition-slow);background:#ffffffe6;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.stepper__number svg{stroke:#fff;fill:none;stroke-width:3px;width:13px;height:13px}.stepper__step--active .stepper__number{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-accent)}.stepper__step--completed .stepper__number{background:var(--success);border-color:var(--success);color:#fff}.stepper__label{color:var(--text-dim);transition:color var(--transition);font-size:13px;font-weight:500}.stepper__step--active .stepper__label{color:var(--text-primary)}.stepper__step--completed .stepper__label{color:var(--success)}.stepper__line{background:var(--glass-border);width:64px;height:2px;transition:background var(--transition-slow);border-radius:2px;margin:0 12px}.stepper__line--completed{background:var(--success)}.wizard-card{background:var(--glass-bg-strong);width:100%;max-width:760px;-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden}.wizard-card__header{border-bottom:1px solid var(--glass-border);padding:28px 32px 24px}.wizard-card__title{color:var(--text-primary);letter-spacing:-.015em;margin-bottom:4px;font-size:18px;font-weight:600}.wizard-card__subtitle{color:var(--text-muted);font-size:14px;line-height:1.5}.wizard-card__body{padding:28px 32px}.wizard-card__footer{border-top:1px solid var(--glass-border);justify-content:space-between;align-items:center;gap:12px;padding:20px 32px;display:flex}.wizard-card__footer-left,.wizard-card__footer-right{align-items:center;gap:8px;display:flex}.db-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.db-card{border:2px solid var(--surface-border);border-radius:var(--radius-lg);background:var(--surface-bg);cursor:pointer;transition:all var(--transition);text-align:center;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:10px;padding:20px 16px;display:flex;position:relative}.db-card:hover:not(.db-card--disabled){border-color:var(--accent);background:var(--accent-light);box-shadow:var(--shadow-md);transform:translateY(-1px)}.db-card--selected{border-color:var(--accent);background:var(--accent-light);box-shadow:0 0 0 4px var(--accent-light-2)}.db-card--selected .db-card__check{opacity:1;transform:scale(1)}.db-card--disabled{opacity:.45;cursor:not-allowed}.db-card__check{background:var(--accent);opacity:0;width:20px;height:20px;transition:all var(--transition);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:10px;right:10px;transform:scale(.6)}.db-card__check svg{stroke:#fff;fill:none;stroke-width:3px;width:11px;height:11px}.db-card__logo{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.db-card__name{color:var(--text-primary);font-size:14px;font-weight:600;line-height:1.3}.db-card__desc{color:var(--text-muted);font-size:12px;line-height:1.4}.db-card__badge{letter-spacing:.04em;border-radius:var(--radius-full);text-transform:uppercase;padding:2px 8px;font-size:10px;font-weight:600}.db-card__badge--soon{background:var(--warning-light);color:var(--warning)}.db-card__badge--active{background:var(--success-light);color:var(--success)}.db-logo--mysql{background:#fff3e0}.db-logo--postgres{background:#e8f4fd}.db-logo--sqlite{background:#e8f5e9}.db-logo--mssql{background:#fce4ec}.db-logo--mongo{background:#e8f5e9}.db-logo--clickhouse{background:#fff8e1}.connection-form{grid-template-columns:1fr 1fr;gap:20px;display:grid}.connection-form__db-badge{border-radius:var(--radius-full);background:var(--accent-light);border:1px solid var(--accent-light-2);color:var(--accent-text);align-items:center;gap:6px;margin-bottom:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.connection-mode{grid-template-columns:1fr 1fr;gap:10px;display:grid}.connection-mode__option{border:1px solid var(--surface-border);border-radius:var(--radius-md);background:var(--surface-bg);font-family:var(--font);text-align:left;cursor:pointer;transition:all var(--transition);flex-direction:column;gap:2px;padding:12px 14px;display:flex}.connection-mode__option:hover{border-color:var(--accent)}.connection-mode__option--selected{border-color:var(--accent);background:var(--accent-light)}.connection-mode__label{color:var(--text-primary);font-size:13px;font-weight:600}.connection-mode__desc{color:var(--text-muted);font-size:12px}.connector-note{border-radius:var(--radius-md);background:var(--info-light);color:var(--text-secondary);padding:12px 14px;font-size:13px;line-height:1.5}.connector-setup{flex-direction:column;gap:16px;display:flex}.connector-setup__warning{border-radius:var(--radius-md);background:var(--warning-light);color:var(--text-secondary);border:1px solid #f59e0b40;padding:10px 14px;font-size:13px;line-height:1.5}.connector-setup__command{border-radius:var(--radius-md);background:var(--code-bg);color:var(--code-text);white-space:pre-wrap;word-break:break-all;margin:0;padding:14px 110px 14px 16px;font-size:12px;line-height:1.6;position:relative}.connector-setup__copy{position:absolute;top:10px;right:10px}.connector-setup__steps{color:var(--text-secondary);margin:0;padding-left:18px;font-size:13px;line-height:1.7}.connector-setup__found{border-radius:var(--radius-md);background:var(--success-light);color:var(--text-primary);border:1px solid #10b98133;padding:14px 16px;font-size:14px}.ssl-toggle{border:1px solid var(--surface-border);border-radius:var(--radius-md);background:var(--surface-bg);cursor:pointer;transition:all var(--transition);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.ssl-toggle:hover{border-color:var(--accent);background:var(--accent-light)}.ssl-toggle__left{align-items:center;gap:10px;display:flex}.ssl-toggle__icon{border-radius:var(--radius-sm);background:var(--success-light);justify-content:center;align-items:center;width:32px;height:32px;display:flex}.ssl-toggle__icon svg{width:15px;height:15px;stroke:var(--success);fill:none;stroke-width:2px}.ssl-toggle__label{color:var(--text-primary);font-size:13px;font-weight:500}.ssl-toggle__sub{color:var(--text-muted);margin-top:1px;font-size:12px}.toggle{flex-shrink:0;width:40px;height:22px;position:relative}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle__track{border-radius:var(--radius-full);background:var(--text-dim);transition:background var(--transition);cursor:pointer;position:absolute;inset:0}.toggle input:checked+.toggle__track{background:var(--success)}.toggle__thumb{width:16px;height:16px;transition:transform var(--transition);pointer-events:none;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.toggle input:checked~.toggle__thumb{transform:translate(18px)}.connection-banner{border-radius:var(--radius-md);transition:all var(--transition-slow);border:1px solid;align-items:center;gap:10px;margin-top:20px;padding:12px 16px;font-size:13px;font-weight:500;display:flex}.connection-banner svg{stroke:currentColor;fill:none;stroke-width:2px;flex-shrink:0;width:16px;height:16px}.connection-banner--idle{background:var(--surface-hover);border-color:var(--surface-border);color:var(--text-muted)}.connection-banner--loading{background:var(--info-light);color:var(--info);border-color:#3b82f633}.connection-banner--success{background:var(--success-light);color:var(--success);border-color:#10b98133}.connection-banner--error{background:var(--error-light);color:var(--error);border-color:#ef444433}.skip-link{color:var(--text-dim);cursor:pointer;font-size:13px;font-family:var(--font);text-underline-offset:2px;transition:color var(--transition);background:0 0;border:none;padding:0;text-decoration:underline}.skip-link:hover{color:var(--text-muted)}@media (width<=1024px){.db-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=768px){.wizard-content{padding:32px 16px}.wizard-card__body,.wizard-card__header{padding:20px}.wizard-card__footer{flex-wrap:wrap;padding:16px 20px}.db-grid{grid-template-columns:repeat(2,1fr)}.connection-form{grid-template-columns:1fr}.stepper__line{width:40px}}.auth-page{background:var(--gradient-bg);justify-content:center;align-items:flex-start;min-height:100vh;padding:80px 16px 40px;display:flex}.auth-card{background:var(--glass-bg-strong);width:100%;max-width:440px;-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:40px;animation:.4s cardFadeIn}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.auth-form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--text-primary);font-size:14px;font-weight:500}.form-label .required{color:var(--error);margin-left:2px}.input-wrapper{position:relative}.form-input{border:1px solid var(--glass-border);border-radius:var(--radius-md);width:100%;font-size:14px;font-family:var(--font);color:var(--text-primary);transition:all var(--transition);background:#ffffffe6;outline:none;padding:10px 14px}.form-input::placeholder{color:var(--text-dim)}.form-input:hover:not(:focus){border-color:#0000001f}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6366f11a}.form-input.has-icon{padding-right:40px}.form-input.error{border-color:var(--error);box-shadow:0 0 0 3px #ef444414}.input-icon-btn{cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.input-icon-btn:hover{background:#0000000d}.input-icon-btn svg{width:16px;height:16px;stroke:var(--text-dim);fill:none;stroke-width:2px}.form-hint{color:var(--text-muted);font-size:12px}.form-error{color:var(--error);align-items:center;gap:4px;font-size:12px;display:flex}.form-error svg{width:12px;height:12px;stroke:var(--error);fill:none;stroke-width:2px;flex-shrink:0}.form-row{justify-content:space-between;align-items:center;display:flex}.checkbox-label{color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.checkbox-label input[type=checkbox]{border:1.5px solid var(--glass-border);appearance:none;cursor:pointer;width:16px;height:16px;transition:all var(--transition);background:#ffffffe6;border-radius:4px;flex-shrink:0;position:relative}.checkbox-label input[type=checkbox]:hover{border-color:var(--accent)}.checkbox-label input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.checkbox-label input[type=checkbox]:checked:after{content:"";border:1.5px solid #fff;border-width:0 1.5px 1.5px 0;width:5px;height:8px;position:absolute;top:1.5px;left:4.5px;transform:rotate(45deg)}.form-link{color:var(--accent-text);transition:color var(--transition);margin-left:4px;font-size:13px;font-weight:500;text-decoration:none}.form-link:hover{color:var(--accent)}.btn-submit{border-radius:var(--radius-md);background:var(--accent-gradient);width:100%;color:var(--text-on-accent);font-size:14px;font-weight:500;font-family:var(--font);cursor:pointer;transition:all var(--transition);box-shadow:var(--shadow-accent);border:none;margin-top:4px;padding:12px 20px}.btn-submit:hover:not(:disabled){transform:scale(1.02);box-shadow:0 4px 12px #6366f166}.btn-submit:active:not(:disabled){transform:scale(.98)}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.auth-footer{text-align:center;color:var(--text-muted);margin-top:20px;font-size:13px}.auth-footer a{color:var(--accent-text);transition:color var(--transition);font-weight:500;text-decoration:none}.auth-footer a:hover{color:var(--accent)}.auth-alert{border-radius:var(--radius-md);align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:13px;display:flex}.auth-alert svg{stroke-width:2px;fill:none;flex-shrink:0;width:16px;height:16px}.auth-alert.alert-error{background:var(--error-light);color:var(--error);border:1px solid #ef44441f}.auth-alert.alert-error svg{stroke:var(--error)}.auth-alert.alert-success{background:var(--success-light);color:var(--success);border:1px solid #10b9811f}.auth-alert.alert-success svg{stroke:var(--success)}@media (width<=480px){.auth-card{margin:0;padding:28px 24px}.auth-page{padding:40px 16px 24px}}
