*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:#4f46e5;--color-primary-dark:#3730a3;--color-primary-light:#ede9fe;--color-secondary:#06b6d4;--color-text:#1e1b4b;--color-text-muted:#6b7280;--color-bg:#f9fafb;--color-surface:#ffffff;--color-border:#e5e7eb;--color-success:#16a34a;--color-error:#dc2626;--color-error-bg:#fef2f2;--color-success-bg:#f0fdf4;--radius:8px;--radius-lg:16px;--shadow-sm:0 1px 3px rgba(0,0,0,0.08);--shadow-md:0 4px 12px rgba(0,0,0,0.1);--shadow-lg:0 8px 32px rgba(0,0,0,0.12)}body,html{height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.6}body{display:flex;flex-direction:column;min-height:100vh}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}.auth-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem;color:var(--color-text-muted)}.auth-loading__spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.form-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;background:var(--color-bg)}.form-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:2.5rem 2rem;width:100%;max-width:440px}.form-card__logo{font-size:1.5rem;font-weight:800;color:var(--color-primary);letter-spacing:-.02em;margin-bottom:.25rem}.form-card__title{font-size:1.5rem;font-weight:700;color:var(--color-text);margin-bottom:.5rem}.form-card__subtitle{font-size:.9rem;color:var(--color-text-muted);margin-bottom:2rem}.form-group{margin-bottom:1.25rem}.form-label{display:block;font-size:.875rem;font-weight:500;color:var(--color-text);margin-bottom:.4rem}.form-input{width:100%;padding:.65rem .875rem;border:1.5px solid var(--color-border);border-radius:var(--radius);font-size:.95rem;color:var(--color-text);background:var(--color-surface);transition:border-color .15s,box-shadow .15s;outline:none}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(79,70,229,.12)}.form-input::placeholder{color:#9ca3af}.btn-primary{display:block;width:100%;padding:.75rem;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius);font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s,transform .1s;text-align:center}.btn-primary:hover{background:var(--color-primary-dark)}.btn-primary:active{transform:scale(.99)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.form-error{background:var(--color-error-bg);color:var(--color-error);border-radius:var(--radius);border:1px solid #fecaca}.form-error,.form-success{padding:.75rem 1rem;font-size:.875rem;margin-bottom:1.25rem}.form-success{background:var(--color-success-bg);color:var(--color-success);border-radius:var(--radius);border:1px solid #bbf7d0}.form-footer{margin-top:1.5rem;text-align:center;font-size:.875rem;color:var(--color-text-muted)}.form-footer a{color:var(--color-primary);font-weight:500}.role-selector{display:grid;grid-template-columns:1fr 1fr;grid-gap:.75rem;gap:.75rem;margin-bottom:1.25rem}.role-option{position:relative}.role-option input[type=radio]{position:absolute;opacity:0;width:0;height:0}.role-option label{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem .5rem;border:1.5px solid var(--color-border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s,background .15s;font-size:.875rem;font-weight:500;gap:.4rem;text-align:center;color:var(--color-text-muted)}.role-option input[type=radio]:checked+label{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary)}.role-option label:hover{border-color:var(--color-primary)}.role-icon{font-size:1.5rem}.api-status{font-size:.875rem;padding:.4rem .75rem;border-radius:4px;display:inline-block;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.api-status--loading{background:#e9ecef;color:#495057}.api-status--ok{background:var(--color-success-bg);color:var(--color-success)}.api-status--error{background:var(--color-error-bg);color:var(--color-error)}