/* =============================================================================
   Lacuna Toolkit — Front-end Form Styles
   Minimal monochrome
   ============================================================================= */

.lt-frontend-form { max-width: 600px; }

.lt-field { margin-bottom: 22px; }

.lt-field-label {
  display: block;
  font-weight: 600;
  font-size: 13px;
  color: #1c1c1c;
  margin-bottom: 5px;
  letter-spacing: .01em;
}

.lt-required { color: #b91c1c; margin-left: 2px; }

.lt-instructions {
  font-size: 12px;
  color: #959595;
  margin: 0 0 7px;
  line-height: 1.5;
}

/* Inputs */
.lt-field-input input[type="text"],
.lt-field-input input[type="email"],
.lt-field-input input[type="number"],
.lt-field-input input[type="url"],
.lt-field-input textarea,
.lt-field-input select {
  width: 100%;
  max-width: 100%;
  padding: 8px 11px;
  border: 1px solid #c9c9c9;
  border-radius: 4px;
  font-size: 14px;
  color: #1c1c1c;
  background: #fff;
  box-sizing: border-box;
  box-shadow: none;
  transition: border-color 140ms ease;
  appearance: none;
}

.lt-field-input input:focus,
.lt-field-input textarea:focus,
.lt-field-input select:focus {
  border-color: #3f3f3f;
  outline: none;
  box-shadow: none;
}

.lt-field-input textarea { min-height: 100px; resize: vertical; }

/* Radio / checkbox */
.lt-radio-label,
.lt-checkbox-label {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 7px;
  font-size: 14px;
  color: #3f3f3f;
  cursor: pointer;
}

.lt-toggle { cursor: pointer; }

/* Media */
.lt-image-preview {
  max-width: 200px;
  display: block;
  margin-bottom: 8px;
  border: 1px solid #e4e4e4;
  border-radius: 4px;
}

button.lt-select-image,
button.lt-remove-image,
button.lt-select-file,
button.lt-remove-file {
  display: inline-flex;
  align-items: center;
  padding: 6px 13px;
  font-size: 12px;
  font-weight: 500;
  color: #3f3f3f;
  background: transparent;
  border: 1px solid #c9c9c9;
  border-radius: 3px;
  cursor: pointer;
  margin-right: 6px;
  transition: color 140ms ease, border-color 140ms ease, background 140ms ease;
}

button.lt-select-image:hover,
button.lt-remove-image:hover,
button.lt-select-file:hover,
button.lt-remove-file:hover {
  color: #0d0d0d;
  border-color: #3f3f3f;
  background: #f6f6f6;
}

/* Submit */
.lt-submit-button {
  display: inline-flex;
  align-items: center;
  padding: 8px 20px;
  font-size: 14px;
  font-weight: 600;
  color: #0d0d0d;
  background: transparent;
  border: 1px solid #0d0d0d;
  border-radius: 4px;
  cursor: pointer;
  transition: background 140ms ease, color 140ms ease;
  letter-spacing: .01em;
}

.lt-submit-button:hover {
  background: #0d0d0d;
  color: #fff;
}

/* Notices */
.lt-notice {
  padding: 11px 16px;
  border-radius: 4px;
  margin-bottom: 16px;
  font-size: 13px;
  border: 1px solid;
}

.lt-notice-success {
  background: #f6f6f6;
  border-color: #bcbcbc;
  color: #1c1c1c;
}

.lt-notice-error {
  background: #fff5f5;
  border-color: #fca5a5;
  color: #7f1d1d;
}

/* Repeater */
.lt-repeater {
  border: 1px solid #e4e4e4;
  border-radius: 6px;
  overflow: hidden;
  margin-bottom: 8px;
}

.lt-repeater-row {
  background: #fff;
  border-bottom: 1px solid #e4e4e4;
  padding: 14px;
  position: relative;
  transition: background 140ms ease;
}

.lt-repeater-row:last-child { border-bottom: none; }
.lt-repeater-row:hover { background: #f6f6f6; }

.lt-remove-row {
  position: absolute;
  top: 10px;
  right: 10px;
  background: none;
  border: none;
  color: #bcbcbc;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
  padding: 2px 4px;
  border-radius: 3px;
  transition: color 140ms ease;
}

.lt-remove-row:hover { color: #b91c1c; }

.lt-add-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 100%;
  padding: 9px;
  background: #f6f6f6;
  border: none;
  border-top: 1px solid #e4e4e4;
  color: #6c6c6c;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: background 140ms ease, color 140ms ease;
}

.lt-add-row:hover { background: #eeeeee; color: #0d0d0d; }
