:root{--color-primary:#534ab7;--color-primary-dark:#3c3489;--color-primary-light:#eeedfe;--color-success:#1d9e75;--color-success-light:#e1f5ee;--color-warning:#ef9f27;--color-warning-light:#faeeda;--color-danger:#e24b4a;--color-danger-light:#fcebeb;--color-bg-primary:#fff;--color-bg-secondary:#f7f7f6;--color-bg-tertiary:#efeeec;--color-text-primary:#1c1b18;--color-text-secondary:#73726c;--color-text-tertiary:#9c9a92;--color-border:#e4e3df;--color-border-dark:#c9c8c2;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 24px #0000001f;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-sans);color:var(--color-text-primary);background-color:var(--color-bg-secondary);-webkit-font-smoothing:antialiased;font-size:15px}#root{height:100%}h1{font-size:1.75rem;font-weight:600;line-height:1.2}h2{font-size:1.375rem;font-weight:600;line-height:1.3}h3{font-size:1.125rem;font-weight:500;line-height:1.4}p{color:var(--color-text-secondary);line-height:1.6}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.btn{border-radius:var(--radius-md);font-size:14px;font-weight:500;font-family:var(--font-sans);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;width:100%;padding:10px 20px;transition:all .15s;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{color:var(--color-text-secondary);border:1px solid var(--color-border);background:0 0}.btn-ghost:hover{background:var(--color-bg-tertiary)}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--color-text-primary);font-size:13px;font-weight:500}.form-input{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;font-size:14px;font-family:var(--font-sans);color:var(--color-text-primary);background:var(--color-bg-primary);outline:none;padding:10px 14px;transition:border-color .15s}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #534ab71f}.form-input::placeholder{color:var(--color-text-tertiary)}.form-input.error{border-color:var(--color-danger)}.form-error{color:var(--color-danger);font-size:12px}.form-hint{color:var(--color-text-tertiary);font-size:12px}.auth-container{background:var(--color-bg-secondary);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--color-bg-primary);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-lg);border:1px solid var(--color-border);padding:40px}.auth-logo{justify-content:center;align-items:center;gap:10px;margin-bottom:28px;display:flex}.auth-logo-icon{background:var(--color-primary);border-radius:var(--radius-md);justify-content:center;align-items:center;width:40px;height:40px;display:flex}.auth-logo-text{color:var(--color-text-primary);font-size:18px;font-weight:600}.auth-title{text-align:center;color:var(--color-text-primary);margin-bottom:6px;font-size:22px;font-weight:600}.auth-subtitle{text-align:center;color:var(--color-text-secondary);margin-bottom:28px;font-size:14px}.auth-form{flex-direction:column;gap:18px;display:flex}.auth-divider{text-align:center;color:var(--color-text-tertiary);margin:4px 0;font-size:13px}.auth-footer{text-align:center;color:var(--color-text-secondary);margin-top:20px;font-size:13px}.alert{border-radius:var(--radius-md);padding:12px 16px;font-size:13px;line-height:1.5}.alert-error{background:var(--color-danger-light);color:#7b1f1f;border:1px solid #f09595}.alert-success{background:var(--color-success-light);color:#0f6e56;border:1px solid #5dcaa5}.alert-info{background:var(--color-primary-light);color:var(--color-primary-dark);border:1px solid #afa9ec}.strength-bar{background:var(--color-border);border-radius:2px;height:4px;margin-top:6px;overflow:hidden}.strength-fill{border-radius:2px;height:100%;transition:width .3s,background .3s}.strength-label{margin-top:4px;font-size:11px}
