/* =========================================================
   기본 폼 요소
========================================================= */

label {
    display: block;
    margin: 0 0 6px;
    font-size: var(--fs-12);
    color: var(--muted);
}

input,
select,
textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    outline: none;

    background: #ffffff;
    color: var(--txt);
    font: inherit;
    font-size: var(--fs-14);
}

input::placeholder,
textarea::placeholder {
    color: #98a2b3;
}

input:focus,
select:focus,
textarea:focus {
    border-color: var(--acc);
    box-shadow: var(--focus-ring);
    transition: all 0.2s ease;
}

textarea {
    resize: vertical;
}

/* =========================================================
   타입별 예외 처리
========================================================= */

/* number 스피너 제거 */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

input[type="number"] {
    -moz-appearance: textfield;
}

/* 체크박스 / 라디오 width 100% 방지 */
input[type="checkbox"],
input[type="radio"] {
    width: auto !important;
    padding: 0 !important;
}

/* 체크박스 선택 색상 */
input[type="checkbox"]:checked {
    accent-color: #111;
}

/* =========================================================
   특정 영역 보정
========================================================= */

/* 선택된 파일 없음 여백 */
.fileName {
    margin-left: 10px;
    font-size: 12px;
    color: var(--muted);
}

/* =========================================================
   입력 오류 상태
========================================================= */

.fieldErr {
    display: none;
    margin-top: 6px;
    font-size: 12px;
    color: var(--bad);
}

.fieldErr.show {
    display: block;
}

.inputInvalid {
    border-color: var(--bad) !important;
    box-shadow: 0 0 0 3px rgba(217, 45, 32, 0.18) !important;
}

.formNotice {
    /* min-height: 18px; */
    /* margin-top: 8px; */

    font-size: 12px;
    line-height: 1.45;
    font-weight: 500;
    letter-spacing: -0.01em;

    color: var(--muted);
}

.formNotice.isOk {
    color: var(--ok);
}

.formNotice.isError {
    color: var(--bad);
}

/* =========================================================
   프로파일 / 규격 상시 안내
========================================================= */
.optionGuideBox {
    margin-top: 14px;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: #f8fafc;
}

.optionGuideTitle {
    margin-bottom: 8px;
    color: var(--txt);
    font-size: var(--fs-14);
    font-weight: 700;
}

.optionGuideDesc {
    color: var(--muted);
    font-size: var(--fs-13);
    line-height: 1.65;
}

.guideSplit {
    height: 1px;
    margin: 10px 0;
    background: var(--line);
}
