.lth-progress {
  box-sizing: border-box;
  width: min(440px, 100%);
  padding: 18px 22px;
  border: 1px solid #9bc9de;
  border-radius: 14px;
  background: #fff;
  color: #123f5e;
  box-shadow: 0 8px 32px #123f5e33;
  font: 14px/1.45 system-ui, sans-serif;
  overflow-wrap: anywhere;
}
.lth-progress--floating {
  position: fixed;
  z-index: 10000;
  bottom: max(24px, env(safe-area-inset-bottom));
  left: 50%;
  transform: translateX(-50%);
  width: min(440px, calc(100% - 32px));
  max-height: calc(100dvh - 48px);
  overflow-y: auto;
}
.lth-progress__title { display: block; font-size: 15px; }
.lth-progress__message { margin: 10px 0; }
.lth-progress__meter { display: block; width: 100%; height: 14px; accent-color: #168ca7; }
.lth-progress__detail { margin: 8px 0 0; font-size: 12px; color: #47647a; }
.lth-progress__detail:empty { display: none; }
.lth-progress__close {
  display: block; margin: 14px 0 0 auto; padding: 7px 12px;
  border: 1px solid #9bc9de; border-radius: 7px; background: #edf7fa;
  color: #123f5e; font: inherit; cursor: pointer;
}
.lth-progress__close:focus-visible { outline: 3px solid #347ff0; outline-offset: 3px; }
.lth-progress [hidden] { display: none; }
.lth-progress[data-state="error"] { border-color: #bd6262; }
.lth-progress[data-state="success"] { border-color: #42a885; }
@media (prefers-reduced-motion: reduce) {
  .lth-progress__meter:indeterminate { appearance: none; border: 1px solid #9bc9de; border-radius: 7px; background: #e3eff3; }
  .lth-progress__meter:indeterminate::-webkit-progress-bar { background: #e3eff3; }
  .lth-progress__meter:indeterminate::-webkit-progress-value { background: #e3eff3; transition: none; animation: none; }
}
