.auth-body { min-height: 100vh; }
.auth-layout { display: grid; min-height: 100vh; grid-template-columns: minmax(360px, .85fr) minmax(420px, 1.15fr); }
.auth-panel { display: flex; flex-direction: column; justify-content: center; padding: clamp(1.5rem, 5vw, 5rem); background: var(--fondo); }
.auth-panel__interior { width: min(100%, 420px); margin: auto; }
.auth-marca { display: inline-flex; align-items: center; gap: .6rem; margin-bottom: 3rem; color: var(--texto); font: 650 var(--texto-16)/1 "Bricolage Grotesque", sans-serif; text-decoration: none; }
.auth-marca__insignia { display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid var(--borde); border-radius: var(--radio); background: var(--superficie); }
.auth-card { display: grid; gap: 1rem; }
.auth-card h1 { margin: 0; font: 650 var(--texto-32)/1.15 "Bricolage Grotesque", sans-serif; letter-spacing: -.03em; }
.auth-card h2 { margin: 0; font: 600 var(--texto-20)/1.25 "Bricolage Grotesque", sans-serif; }
.auth-card > p { margin: 0; color: var(--apagado); font-size: var(--texto-14); line-height: 1.55; }
.auth-card form { display: grid; gap: 1rem; margin-top: .5rem; }
.auth-card form > p { display: grid; gap: .4rem; margin: 0; }
.auth-card label { font-size: var(--texto-14); font-weight: 600; }
.auth-card input:not([type="checkbox"]):not([type="radio"]), .auth-card textarea, .auth-card select { width: 100%; min-height: 44px; border: 1px solid var(--borde); border-radius: var(--radio); padding: .6rem .75rem; background: var(--superficie); color: var(--texto); }
.auth-card button[type="submit"] { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; border: 1px solid var(--tinta-accion); border-radius: var(--radio); padding: .55rem 1rem; background: var(--tinta-accion); color: var(--tinta-accion-texto); font-weight: 600; cursor: pointer; }
.auth-card a { color: var(--texto); text-underline-offset: 3px; }
.auth-card .errorlist { margin: 0; padding: 0; color: var(--urgente); font-size: var(--texto-14); list-style: none; }
.auth-mensajes { display: grid; gap: .5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.auth-mensajes li { border: 1px solid var(--borde); border-radius: var(--radio); padding: .7rem; background: var(--superficie); font-size: var(--texto-14); }
.auth-shell-nav { display: flex; gap: 1rem; margin-top: 1.5rem; color: var(--apagado); font-size: var(--texto-14); }
.auth-visual { position: relative; display: grid; overflow: hidden; place-items: center; border-left: 1px solid var(--borde); background: var(--superficie); padding: 4rem; }
.auth-visual::before { position: absolute; inset: 0; background-image: linear-gradient(var(--borde) 1px, transparent 1px), linear-gradient(90deg, var(--borde) 1px, transparent 1px); background-size: 48px 48px; content: ""; opacity: .18; }
.auth-regla { position: relative; width: min(820px, 90%); filter: blur(2.5px); opacity: .48; transform: rotate(-4deg) scale(1.15); }
.auth-regla__titulo { margin: 0 0 1.5rem; font: 650 var(--texto-48)/1 "Bricolage Grotesque", sans-serif; }
.auth-regla__pista { display: grid; grid-template-columns: repeat(16, 1fr); height: 150px; align-items: end; border-block: 1px solid var(--borde); }
.auth-regla__semana { height: 100%; border-left: 1px solid var(--borde); }
.auth-regla__semana:nth-child(3n) { height: 55%; background: var(--superficie-2); }
.auth-regla__semana:nth-child(5n) { height: 85%; background: var(--superficie-2); }
@media (max-width: 820px) { .auth-layout { grid-template-columns: 1fr; } .auth-visual { display: none; } .auth-panel { min-height: 100vh; padding: 1.5rem; } .auth-marca { margin-bottom: 2rem; } }
