.btn-primary.is-syncing{
  position:relative;
  padding-left:34px;
}
.btn-primary.is-syncing::before{
  content:"";
  position:absolute;
  left:12px;
  top:50%;
  width:12px;
  height:12px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  transform:translateY(-50%);
  animation:spin-mini .7s linear infinite;
}
@keyframes spin-mini{to{transform:translateY(-50%) rotate(360deg);}}
.metric.ok .v{color:#16a34a}
.metric.err .v{color:#dc2626}
.metric.warn .v{color:#ca8a04}
.txt-danger{color:#dc2626;font-weight:700}
.row-mismatch td{background:rgba(220,38,38,.08)}

.theme-btn.is-syncing i,.theme-btn.is-syncing svg{animation:spin-theme .7s linear infinite;transform-origin:center;}
#refreshToggleHeader.is-syncing{cursor:progress;}
#refreshToggleHeader.is-syncing i,#refreshToggleHeader.is-syncing svg{animation:spin-refresh .65s linear infinite;transform-origin:center;}
@keyframes spin-theme{to{transform:rotate(360deg);}}
@keyframes spin-refresh{to{transform:rotate(360deg);}}
