/* ============================================================
   폼 공통 컴포넌트
   - .form-field           : 라벨 + 컨트롤 묶음 (수직 배치)
   - .form-field__label    : 라벨 (text-body-2, gray-700)
   - .form-input           : 표준 텍스트 인풋 (height 5.2rem, border + radius)
   - .form-input--invalid  : 에러 상태 (border 빨강)
   - .form-row             : 같은 줄에 2개 이상 컨트롤 (지역+배기량 같은)
   ============================================================ */

/* ---- 필드 컨테이너 ---- */
.form-field {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}
.form-field__label {
    margin: 0;
    color: var(--gray-600);
    font-family:    var(--font-family-base);
    font-weight:    var(--font-body-2-weight);
    font-size:      var(--font-body-2-size);
    line-height:    var(--font-body-2-line);
    letter-spacing: var(--font-body-2-spacing);
}
.form-field__help {
    margin: 0;
    color: var(--color-primary);
    font-family:    var(--font-family-base);
    font-weight:    var(--font-body-2-weight);
    font-size:      var(--font-body-2-size);
    line-height:    var(--font-body-2-line);
    letter-spacing: var(--font-body-2-spacing);
}

/* ---- 표준 인풋 ---- */
.form-input {
    width: 100%;
    box-sizing: border-box;
    height: 4.4rem;
    padding: 0 2rem;
    background: #fff;
    border: 1px solid var(--line2);
    border-radius: 1rem;
    color: var(--gray-900);
    outline: none;
    font-family:    var(--font-family-base);
    font-weight:    var(--font-body-1-weight);
    font-size:      var(--font-body-1-size);
    line-height:    var(--font-body-1-line);
    letter-spacing: var(--font-body-1-spacing);
    -webkit-appearance: none;
    appearance: none;
}
.form-input::placeholder {
    color: var(--gray-400);
}
.form-input:focus {
    border-color: var(--color-primary);
}
.form-input:disabled {
    background: var(--bg);
    color: var(--gray-400);
    cursor: not-allowed;
}
/* 에러 상태 */
.form-input.is-invalid {
    border-color: var(--color-error);
}

/* ---- 가로 배치 (같은 줄에 컨트롤 2개) ---- */
.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.2rem;
}
.form-row--2-1 { grid-template-columns: 2fr 1fr; }
.form-row--1-2 { grid-template-columns: 1fr 2fr; }
