/**
 * Focus Styles Reset
 * 포커스 스타일 해제 및 커스텀 스타일
 */

/* ===========================================
   기본 포커스 스타일 해제
   =========================================== */

/* 모든 요소의 기본 포커스 아웃라인 해제 */
*:focus {
    outline: none;
}

/* 버튼 포커스 해제 */
button:focus,
input[type="button"]:focus,
input[type="submit"]:focus,
input[type="reset"]:focus {
    outline: none;
    box-shadow: none;
}

/* 링크 포커스 해제 */
a:focus {
    outline: none;
}

/* 입력 필드 포커스 해제 */
input:focus,
textarea:focus,
select:focus {
    outline: none;
    box-shadow: none;
}

/* 기타 폼 요소 포커스 해제 */
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="date"]:focus,
input[type="time"]:focus,
input[type="datetime-local"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="color"]:focus,
input[type="range"]:focus,
input[type="file"]:focus,
input[type="checkbox"]:focus,
input[type="radio"]:focus {
    outline: none;
    box-shadow: none;
}

/* ===========================================
   특정 라이브러리/프레임워크 포커스 해제
   =========================================== */

/* Bootstrap 포커스 해제 */
.btn:focus,
.btn.focus,
.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    outline: none !important;
    box-shadow: none !important;
    border-color: inherit !important;
}

/* jQuery UI 포커스 해제 */
.ui-button:focus,
.ui-widget:focus,
.ui-widget-content:focus {
    outline: none !important;
}

/* ===========================================
   테마 컴포넌트 포커스 해제
   =========================================== */

/* 모든 버튼 포커스 해제 */
[class*="btn"]:focus,
[class*="button"]:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* 탭 포커스 해제 */
[class*="tab"]:focus,
.tab-trigger:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* 카드 및 컨테이너 포커스 해제 */
.card:focus,
[class*="card"]:focus,
[class*="container"]:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* ===========================================
   접근성을 위한 선택적 포커스 복원
   =========================================== */

/* 키보드 사용자를 위한 포커스 표시 (선택사항) */
/* 아래 주석을 해제하면 키보드 탭 네비게이션 시에만 포커스가 표시됩니다 */

/*
body.keyboard-navigation *:focus {
    outline: 2px solid var(--theme-main-color, #408090) !important;
    outline-offset: 2px !important;
}
*/

/* ===========================================
   브라우저별 특수 처리
   =========================================== */

/* Firefox 점선 포커스 제거 */
button::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner {
    border: 0;
    padding: 0;
}

/* Chrome/Safari 자동완성 포커스 제거 */
input:-webkit-autofill:focus,
input:-webkit-autofill:hover,
input:-webkit-autofill:active {
    outline: none !important;
    box-shadow: none !important;
}

/* IE/Edge 포커스 제거 */
input::-ms-clear:focus,
input::-ms-reveal:focus {
    outline: none;
}

/* ===========================================
   모바일 터치 디바이스 처리
   =========================================== */

/* 터치 디바이스에서 탭 하이라이트 제거 */
* {
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none;
}

/* 텍스트 입력 요소는 선택 가능하도록 복원 */
input,
textarea,
[contenteditable="true"] {
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
}

/* 드래그 방지가 필요한 요소들 */
button,
[class*="btn"],
[class*="tab"],
.no-select {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* ===========================================
   고대비 모드에서 포커스 처리
   =========================================== */

@media (prefers-contrast: high) {
    /* 고대비 모드에서는 포커스를 표시 (접근성) */
    *:focus {
        outline: 2px solid #000 !important;
        outline-offset: 2px !important;
    }
}

/* ===========================================
   포커스 표시 감소 설정
   =========================================== */

@media (prefers-reduced-motion: reduce) {
    /* 움직임 감소 설정에서는 포커스 애니메이션 제거 */
    *:focus {
        transition: none !important;
    }
}

/* ===========================================
   유틸리티 클래스
   =========================================== */

/* 강제 포커스 해제 클래스 */
.no-focus:focus,
.focus-none:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* 임시 포커스 해제 클래스 */
.temp-no-focus:focus {
    outline: none !important;
    box-shadow: none !important;
}
