@charset "UTF-8";

/* 모달 열릴 때 스크롤바 제거로 인한 페이지 흔들림 방지 */
body.modal-open { overflow: auto !important; padding-right: 0 !important; }
.modal { scrollbar-gutter: stable; }

/* 도란타임 (TIME_SYSTEM) UI 대원칙 적용
 1. 스마트하고 단순
 2. 장식용 색깔 배제 (붉은색, 원색 금지)
 3. 기본 색깔 톤: 카카오톡 계열 (차분한 배경과 라인)
 4. 버튼색: 엷은 회색 계열
 5. 기본 글자 굵기: 400
*/

body {
    font-family: 'Noto Sans KR', 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
    font-weight: 400;
    color: #333333;
    background-color: #FAFAFA; /* 카카오톡 웹버전 톤의 아주 밝은 회색 배경 */
}

html {
    scrollbar-gutter: stable;
}

/* 컨테이너 */
.gaip-container {
    max-width: 500px;
    margin: 60px auto;
    padding: 50px;
    background-color: #FFFFFF;
    border: 1px solid #EBEBEB;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.02);
}

/* 제목 */
.gaip-title {
    font-size: 26px;
    font-weight: 400;
    text-align: center;
    margin-bottom: 15px;
    color: #1E1E1E;
}

.gaip-subtitle {
    font-size: 15px;
    text-align: center;
    color: #888888;
    margin-bottom: 40px;
}

/* 폼 그룹 */
.form-group {
    margin-bottom: 24px;
}

.form-label {
    display: block;
    font-size: 15px;
    font-weight: 400;
    margin-bottom: 10px;
    color: #555555;
}

/* 입력 필드 */
.form-control {
    width: 100%;
    padding: 12px 16px;
    min-height: 48px;
    font-size: 15px;
    font-weight: 400;
    color: #333;
    border: 1px solid #D9D9D9;
    border-radius: 4px;
    background-color: #FFFFFF;
    box-sizing: border-box;
    transition: border-color 0.2s, box-shadow 0.2s;
    box-shadow: none !important;
}

.form-control:focus {
    outline: none;
    box-shadow: none !important;
}

.form-control::placeholder {
    color: #BDBDBD;
}

/* 폼 컨트롤 작은 사이즈 (이력서 그리드용) */
.form-control-sm {
    padding: 8px 12px;
    min-height: 38px;
    font-size: 13px;
}

/* 버튼 (엷은 회색 계열) */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 20px;
    min-height: 48px;
    font-size: 15px;
    font-weight: 400;
    text-align: center;
    border: 1px solid #D9D9D9;
    border-radius: 4px;
    background-color: #F5F5F5; /* 엷은 회색 */
    color: #333333;
    cursor: pointer;
    box-sizing: border-box;
    transition: background-color 0.2s;
}

.btn-sm {
    padding: 8px 16px;
    min-height: 38px;
    font-size: 13px;
}

.btn:hover {
    background-color: #E8E8E8;
}

.btn-block {
    width: 100%;
}

/* 입력 그룹 (Bootstrap 기본 스타일 활용하되 높이 맞춤) */
.input-group-text, .input-group .btn {
    min-height: 48px;
}

/* 체크박스 영역 */
.checkbox-group {
    margin-top: 30px;
    padding: 20px;
    background-color: #F9F9F9;
    border-radius: 4px;
    border: 1px solid #EEEEEE;
}

.checkbox-item {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.checkbox-item:last-child {
    margin-bottom: 0;
}

.checkbox-item input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #888888; /* 무채색 계열 강조 */
}

.checkbox-label {
    font-size: 14px;
    color: #555555;
}

/* 에러 메시지 */
.error-msg {
    font-size: 13px;
    color: #666666; /* 붉은색 배제 원칙에 따라 짙은 회색으로 에러 표시 */
    margin-top: 8px;
    display: none;
}

/* 링크 */
a {
    color: #555555;
    text-decoration: underline;
}
a:hover {
    color: #1E1E1E;
}

/* 프리미엄 공통 페이지네이션 */
.premium-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    list-style: none;
    padding: 0;
    margin: 40px 0;
    gap: 4px; /* 숫자 간격 */
}
.premium-pagination li {
    margin: 0;
}
/* 화살표(<<, <) 사이 간격 강제 축소 */
.premium-pagination li:has(.bi-chevron-double-left) {
    margin-right: -6px; 
}
.premium-pagination li:has(.bi-chevron-double-right) {
    margin-left: -6px;
}

.premium-pagination .page-link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 28px; /* 크기 축소 */
    height: 28px;
    padding: 0;
    border-radius: 4px; /* 더 작은 크기에 맞게 둥글기 조절 */
    border: 1px solid transparent;
    background-color: transparent;
    color: #666;
    font-size: 15px;
    font-weight: 500;
    text-decoration: none !important;
    transition: all 0.2s ease-in-out;
}
.premium-pagination .page-link:hover {
    background-color: #EBEBEB;
    color: #111;
}

/* 활성(Active) 페이지 배경색 제거 및 텍스트 강조 */
.premium-pagination .page-item.active .page-link {
    background-color: transparent;
    color: #2b70c9;
    font-weight: 800;
    font-size: 16px;
    box-shadow: none;
    text-decoration: underline !important;
    text-underline-offset: 4px;
    text-decoration-thickness: 2px;
}

.premium-pagination .page-item.disabled .page-link {
    color: #A0A0A0;
    pointer-events: none;
}
.premium-pagination .page-item .page-link i {
    font-size: 18px;
    color: #555;
    transform: translateY(1px);
}

/* ============================================================
   모바일 반응형 (Responsive Web)
   ============================================================ */
@media (max-width: 768px) {
    .gaip-container, .auth-wrapper {
        margin: 20px 15px;
        padding: 30px 20px;
    }
    
    .gaip-title {
        font-size: 22px;
    }
    
    .gaip-subtitle {
        font-size: 14px;
        margin-bottom: 30px;
    }
    
    .btn, .form-control, .input-group-text, .input-group .btn {
        min-height: 48px;
        font-size: 15px;
    }
    
    .checkbox-group {
        padding: 15px;
        margin-top: 20px;
    }
    
    .premium-pagination {
        margin: 30px 0;
        gap: 2px;
    }
    
    .premium-pagination .page-link {
        min-width: 24px;
        height: 24px;
        font-size: 14px;
    }

    .auth-card {
        padding: 30px 20px;
    }
}

@media (max-width: 520px) {
    body {
        font-size: 14px;
        letter-spacing: -0.5px;
        line-height: 1.5;
    }

    .gaip-container, .auth-wrapper {
        margin: 10px;
        padding: 20px 15px;
        border-radius: 8px;
    }

    .auth-card {
        padding: 20px 15px;
    }

    .gaip-title {
        font-size: 20px;
    }

    .form-group {
        margin-bottom: 20px;
    }

    .btn {
        padding: 12px 15px;
        font-size: 14px;
        gap: 6px;
    }

    .btn i, .btn svg {
        font-size: 16px;
    }

    .kakao-btn {
        font-size: 15px;
        padding: 14px 15px;
    }
}

/* 추가적인 레이아웃 미세 조정 */
.auth-wrapper {
    max-width: 1000px;
    margin: 60px auto;
}
.auth-card {
    background-color: #FFFFFF;
    border: 1px solid #EBEBEB;
    border-radius: 12px;
    padding: 50px;
    height: 100%;
}
.kakao-btn {
    background-color: #FEE500;
    color: #000000;
    border: none;
    font-weight: 400;
}
.kakao-btn:hover {
    background-color: #E6CF00;
}

/* ============================================================
   Input Group UI 픽스 (테두리 겹침, autofill 배경색 문제 해결)
   ============================================================ */
.input-group {
    background-color: #FFFFFF;
    border: 1px solid #D9D9D9;
    border-radius: 4px;
    overflow: hidden;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.input-group:focus-within {
    border-color: #86b7fe;
}

.input-group:has(.is-valid) {
    border-color: #198754 !important;
}

.input-group:has(.is-invalid) {
    border-color: #dc3545 !important;
}

.input-group > .input-group-text,
.input-group > .form-control,
.input-group > .btn {
    border: none !important;
    background-color: transparent !important;
    box-shadow: none !important;
}

/* 브라우저 자동완성(autofill) 노란/파란 배경색 제거 */
.input-group > .form-control:-webkit-autofill,
.input-group > .form-control:-webkit-autofill:hover, 
.input-group > .form-control:-webkit-autofill:focus, 
.input-group > .form-control:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 1000px white inset !important;
    background-color: transparent !important;
}

 / *   = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =   * / 
 / *   M o b i l e   B o t t o m   N a v i g a t i o n   B a r   ( A p p - l i k e   U I )                                 * / 
 / *   = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =   * / 
 @ m e d i a   ( m a x - w i d t h :   7 6 7 . 9 8 p x )   { 
         / *   X  $DtXt  P |     Jĳ]    ()     * / 
         b o d y   { 
                 p a d d i n g - b o t t o m :   7 0 p x   ! i m p o r t a n t ; 
         } 
         
         . m o b i l e - b o t t o m - n a v   { 
                 p o s i t i o n :   f i x e d ; 
                 b o t t o m :   0 ; 
                 l e f t :   0 ; 
                 r i g h t :   0 ; 
                 h e i g h t :   6 0 p x ; 
                 b a c k g r o u n d - c o l o r :   # F F F F F F ; 
                 b o r d e r - t o p :   1 p x   s o l i d   # E B E B E B ; 
                 d i s p l a y :   f l e x ; 
                 j u s t i f y - c o n t e n t :   s p a c e - a r o u n d ; 
                 a l i g n - i t e m s :   c e n t e r ; 
                 z - i n d e x :   1 0 3 0 ; 
                 b o x - s h a d o w :   0   - 2 p x   1 0 p x   r g b a ( 0 , 0 , 0 , 0 . 0 2 ) ; 
         } 
         
         . m o b i l e - b o t t o m - n a v   . n a v - i t e m   { 
                 t e x t - d e c o r a t i o n :   n o n e ; 
                 c o l o r :   # 8 8 8 8 8 8 ; 
                 d i s p l a y :   f l e x ; 
                 f l e x - d i r e c t i o n :   c o l u m n ; 
                 a l i g n - i t e m s :   c e n t e r ; 
                 j u s t i f y - c o n t e n t :   c e n t e r ; 
                 f o n t - s i z e :   1 1 p x ; 
                 w i d t h :   2 5 % ; 
                 p a d d i n g :   5 p x   0 ; 
                 t r a n s i t i o n :   c o l o r   0 . 2 s ; 
         } 
         
         . m o b i l e - b o t t o m - n a v   . n a v - i t e m   i   { 
                 f o n t - s i z e :   2 2 p x ; 
                 m a r g i n - b o t t o m :   2 p x ; 
         } 
         
         . m o b i l e - b o t t o m - n a v   . n a v - i t e m : a c t i v e , 
         . m o b i l e - b o t t o m - n a v   . n a v - i t e m . a c t i v e   { 
                 c o l o r :   # 3 3 6 6 9 9 ; 
         } 
         
         . m o b i l e - b o t t o m - n a v   . n a v - i t e m . a c t i v e   i   { 
                 f o n t - w e i g h t :   b o l d ; 
         } 
 } 
  
 