/* SpringCheck.vanilla.css — SpringCheck.css (original, kept alongside) re-skinned to the contractor-app tokens. Class names unchanged. Full-width 44px+ row. */
.spring-check {
  --sc-ink: var(--text);
  --sc-fill: var(--accent-fill);
  --sc-check: var(--on-accent);
  --sc-box: 28px;
  --sc-radius: 9px;
  --sc-font: var(--fs-base);
  --sc-ring: 2px;
  --sc-gap: 12px;
  --sc-row: 44px;
  --sc-rule: 1.5px;
  --sc-origin: left center;
  --sc-ease-out: cubic-bezier(0.23, 1, 0.32, 1);

  display: flex;
  width: 100%;
  align-items: center;
  gap: var(--sc-gap);
  min-height: var(--sc-row);
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--sc-ink);
  font-family: inherit;
  font-size: var(--sc-font);
  font-weight: var(--fw-medium);
  line-height: 1.2;
  text-align: left;
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  outline: none;
}

.spring-check:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.spring-check__press {
  flex: none;
  width: var(--sc-box);
  height: var(--sc-box);
  border-radius: var(--sc-radius);
  transition: transform 160ms var(--sc-ease-out);
}

.spring-check[data-pressed] .spring-check__press {
  transform: scale(0.95);
}

.spring-check:focus-visible .spring-check__press {
  outline: var(--ring-w) solid var(--focus);
  outline-offset: var(--ring-offset);
}

.spring-check__box {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  overflow: hidden;
  transform-origin: center;
}

.spring-check__ring {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  opacity: 1;
  color: var(--border-strong); /* UI boundary >= 3:1 (original dimmed the ring to .28) */
  box-shadow: inset 0 0 0 var(--sc-ring) currentColor;
  transition: color 120ms ease;
}

@media (hover: hover) and (pointer: fine) {
  .spring-check:not(:disabled):hover .spring-check__ring {
    color: var(--text-2);
  }
}

.spring-check__fill {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--sc-fill);
  transform-origin: center;
}

.spring-check__tick {
  position: relative;
  width: 68%;
  height: 68%;
  overflow: visible;
  fill: none;
  stroke: var(--sc-check);
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.spring-check__label {
  position: relative;
  display: inline-block;
}

.spring-check__word {
  display: inline-block;
}

.spring-check__rule {
  position: absolute;
  left: 0;
  right: 0;
  top: 46%;
  height: var(--sc-rule);
  border-radius: 2px;
  background: currentColor;
  transform-origin: var(--sc-origin);
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .spring-check__press {
    transition: none;
  }
}
