.hv-tk {
  --gap: 14px;
  --bd: 1px;
  --radius: 10px;

  --fg: #3A3A3A;
  --muted: #B4B4B4;
  --ok: #02667F;
  --err: #b00020;

  --pri: #02667F;
  --bar-bg: #E6E6E6;
  --bar-border: #B4B4B4;
  --bar-grad-a: #0090B7;
  --bar-grad-b: #02667F;
}
.hv-tk * { box-sizing: border-box; }
.hv-tk .hv-tk-form { max-width: 680px; margin: 0 auto; display: grid; gap: var(--gap); }
.hv-tk .hv-tk-row { display: grid; gap: 6px; }
.hv-tk label { font-weight: 600; color: var(--fg); }
.hv-tk .req { color: var(--err); }

.hv-tk input[type="text"],
.hv-tk input[type="email"],
.hv-tk input[type="file"],
.hv-tk select,
.hv-tk textarea {
  width: 100%;
  border: var(--bd) solid #d1d5db;
  border-radius: var(--radius);
  padding: 10px 12px;
  font: inherit;
  background: #fff;
}
.hv-tk textarea { resize: vertical; min-height: 110px; }
.hv-tk select { background: #fff; }

.hv-tk .hv-tk-consent label { font-weight: 500; display: flex; gap: 8px; align-items: flex-start; }

.hv-tk .hv-tk-actions { margin-top: 6px; }
.hv-tk .hv-tk-btn {
  background: var(--pri);
  color: #fff;
  border: 0;
  border-radius: 999px;
  padding: 10px 18px;
  cursor: pointer;
  font-weight: 600;
}
.hv-tk .hv-tk-btn[disabled] { opacity: .6; cursor: not-allowed; }

.hv-tk .hv-tk-progress {
  height: 10px;
  border-radius: 999px;
  background: var(--bar-bg);
  overflow: hidden;
  border: var(--bd) solid var(--bar-border);
}
.hv-tk .hv-tk-progress[aria-hidden="true"] { display: none; }
.hv-tk .hv-tk-progress .bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--bar-grad-a), var(--bar-grad-b));
  transition: width .15s linear;
}

.hv-tk .hv-tk-status { min-height: 20px; font-weight: 600; transition: opacity .3s ease; }
.hv-tk .hv-tk-status.ok { color: var(--ok); }
.hv-tk .hv-tk-status.err { color: var(--err); }
.hv-tk .hv-tk-status.fade { opacity: 0; }
