/* Acceso: una columna, título grande a la izquierda, campos de borde firme. Sin ilustración. */
html,body.acceso{height:100%}
body.acceso{background:var(--paper)}
.acceso-marco{min-height:100vh;min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;
  width:min(440px,100%);margin:0 auto;padding:0 20px;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.acceso-cab{display:flex;align-items:center;gap:12px;padding:22px 0 0}
.acceso-logo{height:30px;width:auto}
.acceso-sitio{font-size:13px;font-weight:600;color:var(--ink-2);padding-left:12px;border-left:1px solid var(--line-2);line-height:18px}
.acceso-cuerpo{display:flex;flex-direction:column;justify-content:center;padding:28px 0}
.paso{display:grid;gap:18px}
.paso h1{margin:0;font-size:30px;line-height:1.1;font-weight:700;letter-spacing:-.025em;color:var(--navy)}
.paso .campo label{font-size:13px;font-weight:600;color:var(--ink)}
.paso input{width:100%;height:48px;border:1.5px solid var(--line-2);border-radius:10px;padding:0 14px;font-size:16px;background:var(--paper);color:var(--ink);transition:border-color .15s}
.paso input:hover{border-color:var(--ink-3)}
.paso input:focus{outline:0;border-color:var(--navy);box-shadow:0 0 0 3px var(--blue-soft)}
.clave{position:relative}
.clave input{padding-right:86px}
.ver{position:absolute;right:6px;top:6px;height:36px;padding:0 12px;border:0;background:none;color:var(--blue-d);font-weight:600;font-size:13px;cursor:pointer;border-radius:8px}
.ver:hover{background:var(--surface)}
.btn.grande{height:50px;font-size:15px;border-radius:10px;margin-top:4px}
.btn.grande[disabled]{opacity:.6}
.error{margin:-4px 0 0;color:var(--alto);font-size:13px;font-weight:500}
.atras{justify-self:start;display:inline-flex;align-items:center;gap:4px;border:0;background:none;padding:6px 8px 6px 2px;margin:-6px 0 -4px;color:var(--ink-2);font-weight:600;font-size:13px;cursor:pointer}
.guia{margin:-6px 0 0;color:var(--ink-2);font-size:15px;line-height:1.5}
.guia b{color:var(--ink)}

/* seis casillas sobre un solo input real: funciona el autocompletar de iOS/Android y pegar el código entero */
.otp{position:relative;height:60px}
.otp input{position:absolute;inset:0;opacity:0;height:100%;border:0;font-size:16px;caret-color:transparent;z-index:2;letter-spacing:40px}
.casillas{display:grid;grid-template-columns:repeat(3,1fr) 4px repeat(3,1fr);gap:8px;height:100%}
.casillas span{display:grid;place-items:center;border:1.5px solid var(--line-2);border-radius:10px;font:500 24px/1 var(--mono);color:var(--navy);background:var(--paper)}
.casillas span:nth-child(4){grid-column:5}
.otp.foco .casillas span.act{border-color:var(--navy);box-shadow:0 0 0 3px var(--blue-soft)}
.otp.error .casillas span{border-color:var(--alto)}
.ventana{display:grid;gap:6px}
.ventana i{display:block;height:3px;background:var(--surface-2);border-radius:99px;overflow:hidden;position:relative}
.ventana i::after{content:"";position:absolute;inset:0;width:var(--w,100%);background:var(--navy);border-radius:99px;transition:width 1s linear}
.ventana small{font:12px var(--mono);color:var(--ink-3)}
.acceso-pie{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:16px 0 20px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-3)}
@media (max-height:620px){.acceso-cuerpo{justify-content:flex-start}.paso h1{font-size:26px}}
@media (prefers-reduced-motion:reduce){.ventana i::after{transition:none}}
@media (max-width:600px){.acceso-cuerpo{justify-content:flex-start;padding-top:9vh}}
