Client: login y registro en split 50/50 con foto hero, Google OAuth, CTA "¿Eres profesional?"
hacia consultorio y OTP de email de 8 dígitos en un input plano; pero forgot/reset/set-password usan
otro shell distinto (wrapper minimal con logo y X). Además el booking abre un auth modal propio
de 3 pasos. Consultorio: split con panel brand-950 que ya tiene una aurora
animada y un testimonio — el precedente directo del Aurora del admin — más demo link y un wizard de
registro de 7 pasos que funciona bien y solo necesita retinte. Sin OAuth. La secretaria no se
registra: la invita el doctor y define su contraseña dentro del shell.
No es "copiar el login del admin": es unificar las tres puertas bajo un solo lenguaje, decidiendo cuánta noche recibe cada audiencia. El profesional vive en herramientas; el paciente llega desde una landing clara y a veces desde un modal de reserva.
Todo lo que el login del client carga hoy sobrevive: Google, email/contraseña, recuperar, registro y el CTA profesional. El formulario se queda en el día — continuidad con la landing clara y el auth modal del booking — y la aurora entra como marca viva en el panel.
El lado del día, con firma: la regla degradado bajo el wordmark (la misma de los correos), el eyebrow del portal, "Hola de nuevo." con el acento menta y los términos anclados al pie. La aurora menta+verde sustituye la foto de stock por marca viva y carga el eslogan. En móvil el panel colapsa (como hoy la foto) y la aurora queda como acento del header.
Sin OAuth — email y contraseña, y el testimonio que hoy vive en su panel. La aurora aquí es petroleo dominante: más clínica, más sobria, con la menta de acento — y la arquitectura es el espejo del client.
El espejo del client: misma arquitectura split en las dos puertas de producto, con los colores invertidos. El paciente entra por el día y mira la noche; el médico entra por la noche (aurora petroleo, la clínica) y mira el día — el panel claro con glows menta/verde suaves donde el testimonio vende con luz. El slogan es el tagline del panel de día — "Médicos cerca de ti." vive grande en las dos puertas de producto — y el demo es un susurro bajo Regístrate (11px, blanco al 40%): presente para quien lo busca, invisible para quien no. El admin queda como la única puerta full-noche: tres hermanas, ninguna gemela.
La coreografía es una sola (drift de 12s/16s, isotipo al 7%, lámina glass, fade al portal). Lo que cambia por puerta es el par de auroras, siempre dentro del manual — degradados solo entre vecinos de la paleta.
Por qué un par por puerta: la familia se reconoce por la coreografía y la noche; el par de color le da a cada puerta una temperatura propia sin salir del manual. Quien vive en dos apps (el admin que también es doctor) siente el cambio de cuarto.
Estas piezas viajan iguales en las tres puertas: el OTP de 8 dígitos deja el input plano y pasa a cajitas (con pegado completo y foco visible), forgot/reset/set-password heredan el shell del login de su app (muere el tercer lenguaje del client), y el auth modal del booking hereda componentes, no el fondo — inputs, cajitas OTP, tipografía y botones nuevos sobre su Dialog claro, porque un modal noche sobre una página clara pelearía con el contenido que lo abrió.
Dónde aplica el OTP de cajitas: registro del client (página y modal), paso 7 del wizard del consultorio. El wizard de 7 pasos no se rediseña — conserva su RegisterLayoutSplit y solo retinta su pane derecho al lenguaje aurora de su app.
La matriz · toda la superficie auth
| Pantalla | App | Qué recibe |
|---|---|---|
| /login | client · consultorio | El split de su puerta — claro para el paciente, invertido para el médico — con su par de auroras. |
| /register (paciente) | client | El shell del login + OTP en cajitas; Google arriba como hoy. |
| /register (wizard 7 pasos) | consultorio | Solo retinte: pane derecho al lenguaje aurora; OTP del paso 7 en cajitas. |
| /forgot · /reset · /set-password | ambas | Heredan el shell del login de su app — muere el AuthPageWrapper divergente del client. |
| Auth modal (booking) | client | Componentes nuevos (inputs, OTP, botones), fondo claro intacto. |
| /access-denied · /welcome · gate de secretaria | consultorio | Retinte al lenguaje; sin cambio estructural. |
| Transición de entrada | ambas | El fade login→portal del admin, portado tal cual (reduced-motion incluido). |
Split con panel vivo
El paciente conserva el formulario sobre claro (continuidad con la landing y el auth modal del booking) y la aurora menta+verde reemplaza la foto de stock. En móvil el panel colapsa y la aurora queda como acento del header.
Split invertido: noche mira al día
El espejo del client: formulario sobre noche (aurora petroleo, campos glass, botón menta) y panel de día con "Médicos cerca de ti." como tagline y el testimonio. El demo es un susurro bajo Regístrate. El admin queda como la única puerta full-noche.
Admin menta+petroleo · consultorio petroleo dominante · client menta+verde. Misma coreografía (drift 12s/16s, isotipo 7%, lámina glass, fade al portal), temperatura propia por app.
Tres puertas, una sola casa.
El paciente entra por el día y mira la noche; el médico entra por la noche y mira el día; el admin vive en la noche completa. Una coreografía, tres temperaturas — y ningún lenguaje suelto en la superficie de auth.
Client split con panel vivo · Consultorio split invertido · un par de auroras por puerta.
OTP en cajitas · shells unificados · modal hereda componentes · fade al portal.
design-ship publica y arma el proyecto → goal-phases lo vuelve ejecutable.