/* UX-FLUIDEZ-1: componente único; tempo de exibição em app.js, movimento somente em CSS. */
.ds-processing {
  --processing-size: 30px;
  position: fixed;
  inset: 0;
  z-index: 19;
  display: grid;
  place-items: center;
  padding: var(--space-4);
  background: color-mix(in srgb, var(--modal-backdrop) 35%, transparent);
  color: var(--primary);
  pointer-events: none;
}

.ds-processing-ring {
  box-sizing: border-box;
  width: var(--processing-size);
  height: var(--processing-size);
  border: 3px solid var(--line);
  border-top-color: var(--primary);
  border-radius: 50%;
  animation: ds-processing-spin 800ms linear infinite;
}

.ds-processing-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.ds-processing-surface {
  position: relative;
  min-width: 0;
  min-height: 280px;
}

@keyframes ds-processing-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 900px) {
  .ds-processing { --processing-size: 24px; padding: var(--space-3); }
  .ds-processing-surface { min-height: 240px; }
}

@media (min-width: 901px) and (max-width: 1800px) {
  .ds-processing { --processing-size: 30px; }
}

@media (min-width: 1801px) {
  .ds-processing { --processing-size: 36px; }
  .ds-processing-surface { min-height: 320px; }
}

@media (prefers-reduced-motion: reduce) {
  .ds-processing-ring { animation: none; }
}
