/* =========================================================
   ClientSideTools — CSS clip-path Polygon Coordinate Extractor
   ========================================================= */

.clip-stage-wrapper {
  overflow: hidden;
  border: 1px solid var(--border-default);
  border-radius: var(--radius-md);
  background-color: var(--bg-secondary);
}

.clip-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  cursor: crosshair;
  background-color: var(--bg-secondary);
  background-image:
    linear-gradient(45deg, var(--bg-tertiary) 25%, transparent 25%),
    linear-gradient(-45deg, var(--bg-tertiary) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, var(--bg-tertiary) 75%),
    linear-gradient(-45deg, transparent 75%, var(--bg-tertiary) 75%);
  background-size: 20px 20px;
  background-position: 0 0, 0 10px, 10px -10px, -10px 0;
}

.clip-stage-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: fill;
  display: none;
}

.clip-stage.has-image .clip-stage-image {
  display: block;
}

.clip-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.clip-overlay polygon {
  fill: rgba(13, 148, 136, 0.16);
  stroke: var(--brand-primary);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}

.clip-points {
  position: absolute;
  inset: 0;
}

.clip-point {
  position: absolute;
  width: 18px;
  height: 18px;
  margin: -9px 0 0 -9px;
  padding: 0;
  border: 2px solid var(--brand-primary);
  border-radius: var(--radius-full);
  background-color: var(--bg-primary);
  color: var(--brand-primary);
  font-size: 10px;
  line-height: 1;
  cursor: grab;
}

.clip-point:focus-visible {
  outline: 2px solid var(--brand-primary);
  outline-offset: 2px;
}

.clip-point:active {
  cursor: grabbing;
}

.clip-point-list {
  display: grid;
  gap: var(--space-2);
}

.clip-point-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: var(--space-2);
  align-items: center;
}

.clip-point-row input {
  width: 100%;
}
