dialog.fit-progress {
  box-sizing:border-box; width:min(440px, calc(100% - 40px)); max-height:calc(100svh - 40px);
  margin:auto; padding:36px 28px 24px; border:1px solid #cad5e0; border-radius:8px;
  background:#fff; color:#343434; text-align:center; font-family:Arial, Helvetica, sans-serif;
  box-shadow:0 12px 40px #172b4220;
}
dialog.fit-progress::backdrop { background:#eef3f7e8; }
.fit-progress h2 { margin:20px 0 0; font-size:20px; line-height:1.3; font-weight:600; }
.fit-progress-message { margin:16px 0 0; color:#506070; font-size:15px; line-height:1.6; }
.fit-progress-dots { display:flex; justify-content:center; gap:10px; padding:8px 0; }
.fit-progress-dots span { width:10px; height:10px; border-radius:50%; background:#346295; animation:fit-progress-pulse 1.2s ease-in-out infinite; }
.fit-progress-dots span:nth-child(2) { animation-delay:.16s; }
.fit-progress-dots span:nth-child(3) { animation-delay:.32s; }
body dialog.fit-progress .fit-progress-hide {
  margin:26px 0 0; padding:10px 22px; min-height:44px; border:1px solid #9fb6cf; border-radius:6px;
  background:#fff; color:#27496f; box-shadow:0 1px 2px #172b4214; text-shadow:none;
  font:inherit; font-size:15px; font-weight:600; cursor:pointer;
}
body dialog.fit-progress .fit-progress-hide:hover { background:#eaf0f7; border-color:#346295; }
body dialog.fit-progress .fit-progress-hide:active { background:#dde8f4; }
.fit-progress-hide:focus-visible { outline:2px solid #346295; outline-offset:2px; }
@keyframes fit-progress-pulse { 0%, 80%, 100% { opacity:.35; transform:translateY(0); } 40% { opacity:1; transform:translateY(-5px); } }
@media (prefers-reduced-motion:reduce) { .fit-progress-dots span { animation:none; } }
