.field-full {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}

label {
  font-size: 14px;
  color: var(--muted);
}

input,
textarea {
  width: 100%;
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line);
  background: var(--panel-2);
  color: var(--text);
}

textarea {
  min-height: 120px;
}

input:invalid,
textarea:invalid,
select:invalid {
  border-color: rgba(248, 113, 113, 0.6);
}

/* при фокусе — не раздражает */
input:focus:invalid,
textarea:focus:invalid,
select:focus:invalid {
  border-color: var(--danger);
}

/* FILE BLOCK */

.file-drop {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
  border: 1px dashed var(--line);
  border-radius: var(--radius);
  padding: 18px;
}

/* убираем "No file chosen" */
.file-drop input[type="file"] {
  color: transparent;
}

.file-list {
  font-size: 14px;
  color: var(--muted);
  text-align: center;
}

/* ERROR */

.file-drop.error {
  border-color: var(--danger);
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.field-full {
  grid-column: 1 / -1;
}

.field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

select {
  width: 100%;
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--line);
  background: var(--panel-2);
  color: var(--text);
}

.checkbox-row, .fineprint {
  display: block;
  font-size: 13px;
  color: var(--muted);
  align: left;
}

.checkbox-row input {
  margin-top: 3px;
}

.file-btn {
  display: inline-block;
  padding: 8px 16px;

  border-radius: var(--radius-sm);
  border: 1px solid var(--line);

  background: var(--panel);
  color: var(--text);

  cursor: pointer;
  font-size: 14px;
}

.file-btn:hover {
  border-color: var(--accent);
}

.checkbox-row:has(input:invalid) {
  border: 1px solid rgba(248, 113, 113, 0.5);
  border-radius: 8px;
  padding: 8px;
}
