/* R2GO control-height contract: 앱·어드민의 입력/선택/액션 박스는 40px. */
:where(
    input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
    select,
    textarea,
    button:not([type="checkbox"]):not([type="radio"]):not([aria-label]):not([data-close]),
    button.btn,
    button.r2go-signup__btn,
    button.r2go-signup__btn-action,
    button.r2go-asub-modal__btn,
    a.btn,
    .btn-compact,
    .admin-members-filter-form button,
    .admin-members-filter-form input,
    .admin-members-filter-form select,
    .filters > button:not([type="checkbox"]):not([type="radio"])
) {
    box-sizing: border-box;
    height: 40px !important;
    min-height: 40px !important;
    line-height: normal !important;
}

/* 개별 페이지의 30/32/44/48px 규칙보다 우선하는 실제 필드 기준 */
input.r2go-signup__input,
select.r2go-signup__input,
.member-edit-field input,
.member-edit-field select,
.admin-address-combo,
.admin-address-combo input,
.admin-address-combo button,
.admin-members-filter-form input,
.admin-members-filter-form select,
.admin-members-filter-form button,
.r2go-signup__input-group .r2go-signup__btn-action {
    box-sizing: border-box !important;
    height: 40px !important;
    min-height: 40px !important;
}

input.r2go-signup__input,
select.r2go-signup__input,
.member-edit-field input,
.member-edit-field select,
.admin-address-combo input,
.admin-members-filter-form input,
.admin-members-filter-form select {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 40px !important;
}

.admin-address-combo,
.admin-address-combo button,
.r2go-signup__input-group .r2go-signup__btn-action,
.admin-members-filter-form button {
    line-height: normal !important;
}

:where(
    input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
    select
) {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 40px !important;
    vertical-align: middle;
}

:where(textarea) {
    line-height: 1.4 !important;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
}

:where(
    button.r2go-signup__btn,
    button.r2go-signup__btn-action,
    button.r2go-asub-modal__btn,
    button.btn,
    a.btn,
    .btn-compact,
    .admin-members-filter-form button
) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: normal !important;
    vertical-align: middle;
}

/* 예외 스타일이 남아 있는 페이지도 동일한 입력·액션 박스 계약을 따른다. */
:where(
    input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
    select,
    textarea,
    button:not([type="checkbox"]):not([type="radio"]):not([aria-label]):not([data-close])
) {
    height: 40px !important;
    min-height: 40px !important;
    box-sizing: border-box !important;
}

/* 아이콘 전용 버튼·토글·하단 내비게이션은 컨트롤 박스 기준에서 제외한다. */
:where(
    button[aria-label],
    button[data-close],
    button.r2go-asub__back,
    button.r2go-phone-status-bar,
    .r2go-bottom-nav button,
    .r2go-nav-icon button,
    input[type="color"]
) {
    height: auto !important;
    min-height: 0 !important;
    line-height: normal !important;
}
