.layout-preloader-container {
  width: 100%;
  min-height: 100%;
  background-color: var(--primary-color);
  position: absolute;
  top: 0;
  left: 0;
}

.layout-preloader-content {
  position: absolute;
  top: 50%;
  left: 50%;
  /* on remplace les margins fixes par un translate pour un vrai centering */
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
}

/* logo au-dessus du spinner */
.layout-preloader-logo {
  width: 140px;          /* augmenté de 80px à 140px */
  height: auto;
  grid-area: 1 / 1;
}

.layout-preloader {
  animation: rotator 1.4s linear infinite;
  grid-area: 1 / 1;
  width: 245px;
  height: 245px;
}

@keyframes rotator {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(270deg); }
}

.layout-preloader-path {
  stroke-dasharray: 187;
  stroke-dashoffset: 0;
  transform-origin: center;
  animation:
    dash    1.4s ease-in-out infinite,
    colors  5.6s ease-in-out infinite;
}

@keyframes colors {
  0%   { stroke: #4285F4; }
  25%  { stroke: #DE3E35; }
  50%  { stroke: #F7C223; }
  75%  { stroke: #1B9A59; }
  100% { stroke: #4285F4; }
}

@keyframes dash {
  0%   { stroke-dashoffset: 187; }
  50%  {
    stroke-dashoffset: 93.5;
    transform: rotate(135deg);
  }
  100% {
    stroke-dashoffset: 187;
    transform: rotate(450deg);
  }
}
