// === Escena 03 — Quién es: Personal o Empresa, los obligatorios en rojo, el título que se compone solo ===
// EntidadDialog.razor:51-141 (campos), :986-990 (título automático), :551-566 (avisos), :509 («Siguiente»).
function EscenaAC03({ t }){
  useVoz(2);
  const G = GUION[2];
  const T = {
    arriba:    B(G, 'Arriba eliges'),                 // → la barra Personal / Empresa
    persona:   B(G, 'Si es una persona'),             // → campos de persona
    nombre:    B(G, 'nombre, apellidos'),
    identPers: B(G, 'su identificación fiscal'),      // → NIF/CIF
    empresa:   B(G, 'Si es una empresa'),             // → clic en Empresa: cambian los campos
    rojo:      B(G, 'Lo que sale en rojo'),           // → los dos obligatorios, una vez
    escribes:  B(G, 'Escribes la razón social'),      // → se teclea la razón social
    compone:   B(G, 'el título de la ficha'),         // → el título de arriba, una vez
    ident:     B(G, 'Después, la identificación'),     // → se teclea el ID fiscal
    correo:    B(G, 'el correo'),
    tel:       B(G, 'el teléfono'),
    falta:     B(G, 'Si falta algo'),                 // → aviso de ejemplo
    puesto:    B(G, 'Con todo puesto'),               // → el aviso se va
    siguiente: B(G, 'pulsas Siguiente'),              // → clic en «Siguiente»
    cambia:    B(G, 'Y aquí la ventana cambia'),
  };
  const empresa = t >= T.empresa + 0.5;
  const RAZON = 'Talleres Marbán, S.L.', IDF = 'B98314207', EMAIL = 'info@talleresmarban.es', TEL = '961 244 180';
  const razon = tecleo(RAZON, t, T.escribes + 0.6, 9);
  // Para enseñar el aviso, el ID fiscal se vacía un momento: «Siguiente» avisa, y al volver a escribirlo pasa.
  const sinIdf = t >= T.falta + 0.2 && t < T.puesto + 0.2;
  const idf = sinIdf ? '' : (t >= T.puesto ? tecleo(IDF, t, T.puesto + 0.2, 18) : tecleo(IDF, t, T.ident + 0.9, 9));
  const email = tecleo(EMAIL, t, T.correo + 0.2, 20);
  const tel = tecleo(TEL, t, T.tel + 0.3, 14);
  let caret = '';
  if (t >= T.escribes + 0.4 && razon.length < RAZON.length) caret = 'razon';
  else if (t >= T.ident + 0.7 && t < T.falta && idf.length < IDF.length) caret = 'idf';
  else if (t >= T.puesto + 0.2 && idf.length < IDF.length) caret = 'idf';
  else if (t >= T.correo && email.length < EMAIL.length) caret = 'email';
  else if (t >= T.tel + 0.1 && tel.length < TEL.length) caret = 'tel';
  const v = { empresa, razon, idf, email, tel, titulo: empresa ? razon : '' };
  const m = {
    barra:  pulso(t, T.arriba, 1.6),
    nombre: pulso(t, T.nombre, 1.4),
    nif:    pulso(t, T.identPers, 1.4),
    razon:  pulso(t, T.rojo, 1.6),
    titulo: pulso(t, T.compone, 1.8),
    siguiente: pulso(t, T.falta + 0.8, 1.0) + pulso(t, T.siguiente, 1.4),
    idf: pulso(t, T.rojo + 0.3, 1.6) + pulso(t, T.falta + 1.0, 1.4),
  };
  const sale = pe(t, T.cambia, 0.8);
  const cursor = { frames:[
    { t:0, x:1300, y:700 },
    { t:T.empresa - 0.5, x:1300, y:700 },
    { t:T.empresa + 0.3, x:470, y:432 },
    { t:T.escribes, x:470, y:432 },
    { t:T.escribes + 0.5, x:700, y:520 },
    { t:T.falta, x:900, y:760 },
    { t:T.falta + 0.8, x:1520, y:946 },
    { t:T.puesto - 0.3, x:1520, y:946 },
    { t:T.puesto + 0.2, x:1300, y:478 },
    { t:T.siguiente - 0.3, x:1300, y:478 },
    { t:T.siguiente + 0.4, x:1520, y:946 },
  ], clicks:[T.empresa + 0.35, T.falta + 0.85, T.siguiente + 0.5] };
  return (
    <SlideCanvas variant="light" bg={C.fondo} grid={false}>
      <AppPymes><Lista/></AppPymes>
      <div style={{ position:'absolute', inset:0, background:'rgba(15,23,42,0.35)' }}/>
      <div style={{ opacity:1 - 0.4 * sale }}>
        <FichaPaso1 v={v} m={m} caret={caret}/>
      </div>
      <Aviso t={t} desde={T.falta + 1.0} hasta={T.puesto} tipo="aviso" titulo="Revisa los datos antes de guardar" detalle="Falta el NIF." x={1250} y={56}/>
      <Rotulo t={t} desde={T.rojo + 0.2} hasta={T.escribes}>En rojo: obligatorio</Rotulo>
      <Rotulo t={t} desde={T.falta + 0.2} hasta={T.puesto}>Si falta algo, te lo dice</Rotulo>
      <ScriptedCursor frames={cursor.frames} t={t} clickTimes={cursor.clicks}/>
    </SlideCanvas>
  );
}
Object.assign(window, { EscenaAC03 });
