/* Unified progress presentation: numeric badge above a thin track.
   Kept in a final stylesheet so every module uses the same geometry. */

.module-progress.hidden,
.progress.hidden,
#documentSlots .module-progress,
#documentSlots [class*="progress"]{
  display:none!important;
}

.module-progress,
#appView .module-progress,
#cpfModuleView .module-progress,
#analysisModuleView .module-progress,
.detail-side .module-progress,
.mini-job .module-progress{
  --progress-track:9px;
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:36px!important;
  min-height:36px!important;
  margin:10px 0 4px!important;
  padding:0!important;
  overflow:visible!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

.module-progress::before,
#appView .module-progress::before,
#cpfModuleView .module-progress::before,
#analysisModuleView .module-progress::before,
.detail-side .module-progress::before,
.mini-job .module-progress::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:var(--progress-track);
  border-radius:999px;
  background:linear-gradient(180deg,#edf2f6,#e3eaf1);
  box-shadow:inset 0 1px 2px rgba(16,35,57,.08);
}

.module-progress i,
#appView .module-progress i,
#cpfModuleView .module-progress i,
#analysisModuleView .module-progress i,
.detail-side .module-progress i,
.mini-job .module-progress i{
  position:absolute!important;
  left:0!important;
  bottom:0!important;
  display:block!important;
  height:var(--progress-track)!important;
  width:0;
  border-radius:999px!important;
  background:linear-gradient(90deg,#b4842d 0%,#d9b25f 62%,#ecd08e 100%)!important;
  box-shadow:0 0 0 1px rgba(189,143,61,.08),0 3px 10px rgba(185,135,45,.18)!important;
  transition:width .38s cubic-bezier(.22,.8,.24,1)!important;
}

.module-progress span,
#appView .module-progress span,
#cpfModuleView .module-progress span,
#analysisModuleView .module-progress span,
.detail-side .module-progress span{
  position:absolute!important;
  top:0!important;
  right:0!important;
  left:auto!important;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-width:46px;
  height:22px;
  padding:0 9px;
  margin:0!important;
  border:1px solid #d7bd84;
  border-radius:999px;
  background:linear-gradient(180deg,#14395d,#0c2745);
  color:#f3db9e!important;
  font-family:Inter,"SF Pro Display","PingFang SC",system-ui,sans-serif!important;
  font-size:11px!important;
  font-weight:800!important;
  line-height:20px!important;
  letter-spacing:.15px;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  box-shadow:0 3px 8px rgba(9,31,54,.16);
  overflow:visible!important;
}

.module-progress.compact,
#appView .module-progress.compact,
#cpfModuleView .module-progress.compact,
#analysisModuleView .module-progress.compact,
.detail-side .module-progress.compact{
  height:34px!important;
  min-height:34px!important;
  margin-top:8px!important;
}

.module-progress.compact span,
#appView .module-progress.compact span,
#cpfModuleView .module-progress.compact span,
#analysisModuleView .module-progress.compact span,
.detail-side .module-progress.compact span{
  top:0!important;
  right:0!important;
  display:inline-flex!important;
  text-align:center!important;
}

/* Mini job cards keep the track compact, but still use the same fill language. */
.mini-job .module-progress{
  height:18px!important;
  min-height:18px!important;
  margin-top:8px!important;
}
.mini-job .module-progress::before{height:6px}
.mini-job .module-progress i{height:6px!important}
.mini-job .module-progress span{display:none!important}
#appView .mini-job .module-progress{height:18px!important;min-height:18px!important}
#appView .mini-job .module-progress::before{height:6px}
#appView .mini-job .module-progress i{height:6px!important}
#appView .mini-job .module-progress span{display:none!important}

/* Client intake uses the simpler .progress markup. */
.progress{
  position:relative!important;
  display:block!important;
  width:100%;
  height:36px!important;
  margin:0 0 16px!important;
  overflow:visible!important;
}
.progress::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:9px;
  border-radius:999px;
  background:linear-gradient(180deg,#edf2f6,#e3eaf1);
  box-shadow:inset 0 1px 2px rgba(16,35,57,.08);
}
.progress i{
  position:absolute!important;
  left:0;
  bottom:0;
  height:9px!important;
  width:0;
  border-radius:999px!important;
  background:linear-gradient(90deg,#b4842d,#d9b25f 62%,#ecd08e)!important;
  box-shadow:0 3px 10px rgba(185,135,45,.18);
  transition:width .38s cubic-bezier(.22,.8,.24,1);
}
.progress span{
  position:absolute!important;
  top:0;
  right:0;
  left:auto!important;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-width:46px;
  height:22px;
  padding:0 9px;
  border:1px solid #d7bd84;
  border-radius:999px;
  background:linear-gradient(180deg,#14395d,#0c2745);
  color:#f3db9e;
  font-size:11px!important;
  font-weight:800;
  line-height:20px;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  box-shadow:0 3px 8px rgba(9,31,54,.16);
}

@media (max-width:600px){
  .module-progress span,#cpfModuleView .module-progress span{
    min-width:42px;
    height:21px;
    font-size:10.5px!important;
  }
}
