.form{
  display:block;
}

.form__grid{
  display:grid;
  gap:16px;
}

.form__grid--2{
  grid-template-columns:repeat(2, minmax(0,1fr));
}

.form__row{
  display:grid;
  gap:8px;
}

.form__row--inline{
  display:flex;
  align-items:center;
  gap:12px;
}

.form__label{
  display:inline-block;
  font-size:14px;
  font-weight:700;
  color:var(--pv-text);
}

.form__hint{
  font-size:13px;
  line-height:1.5;
  color:var(--pv-muted);
}

.form__error{
  font-size:13px;
  line-height:1.5;
  color:#ff8e8e;
}

.input,
.select,
.textarea{
  display:block;
  width:100%;
  min-height:48px;
  padding:0 14px;
  border:1px solid var(--pv-line);
  border-radius:14px;
  background:rgba(255,255,255,.03);
  color:var(--pv-text);
  transition:border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.input::placeholder,
.textarea::placeholder{
  color:rgba(255,255,255,.38);
}

.input:hover,
.select:hover,
.textarea:hover{
  border-color:rgba(255,255,255,.16);
}

.input:focus,
.select:focus,
.textarea:focus{
  border-color:rgba(255,180,84,.72);
  box-shadow:0 0 0 3px rgba(255,138,0,.12);
  outline:none;
}

.textarea{
  min-height:120px;
  padding:14px;
  resize:vertical;
}

.select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  padding-right:40px;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(255,255,255,.72) 50%),
    linear-gradient(135deg, rgba(255,255,255,.72) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) calc(50% - 2px),
    calc(100% - 12px) calc(50% - 2px);
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
}

.input[disabled],
.select[disabled],
.textarea[disabled]{
  opacity:.6;
  cursor:not-allowed;
}

.form__control.is-invalid .input,
.form__control.is-invalid .select,
.form__control.is-invalid .textarea{
  border-color:rgba(255,110,110,.72);
  box-shadow:0 0 0 3px rgba(255,110,110,.08);
}

.form__control.is-valid .input,
.form__control.is-valid .select,
.form__control.is-valid .textarea{
  border-color:rgba(93,224,144,.56);
}

.check{
  display:flex;
  align-items:flex-start;
  gap:10px;
}

.check input[type="checkbox"],
.check input[type="radio"]{
  width:18px;
  height:18px;
  margin-top:2px;
  accent-color:var(--pv-accent);
  flex:0 0 18px;
}

.check__label{
  color:var(--pv-muted);
  font-size:14px;
  line-height:1.55;
}

.inputGroup{
  display:flex;
  align-items:stretch;
  gap:10px;
}

.inputGroup .input{
  flex:1 1 auto;
}

.inputAddon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:52px;
  padding-inline:14px;
  border:1px solid var(--pv-line);
  border-radius:14px;
  background:rgba(255,255,255,.03);
  color:var(--pv-muted);
  white-space:nowrap;
}

.searchField{
  position:relative;
}

.searchField .input{
  padding-left:40px;
}

.searchField__icon{
  position:absolute;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  color:var(--pv-muted-2);
  pointer-events:none;
}

.formActions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
}

.fieldset{
  min-width:0;
  margin:0;
  padding:0;
  border:0;
}

.legend{
  margin-bottom:10px;
  font-size:14px;
  font-weight:800;
  color:var(--pv-text);
}