/*
------------------------------------
 비디오 배경 (Video Background)
------------------------------------
*/
.video-background {
    position: fixed; /* 비디오를 화면에 고정 */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -10; /* 모든 콘텐츠 뒤에 위치 */
    overflow: hidden;
}

.video-background video {
    position: absolute; /* 비디오의 위치를 절대값으로 설정 */
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    object-fit: cover; /* 비디오를 화면 크기에 맞게 채움 */
    transform: translate(-50%, -50%); /* 중앙 정렬 */
}

/*
------------------------------------
 콘텐츠 컨테이너 (Content Wrapper)
------------------------------------
*/
.content-wrapper {
    position: relative; /* 비디오 위에 콘텐츠를 표시 */
    z-index: 1; /* 비디오 배경 위에 콘텐츠 위치 */
}

/*
------------------------------------
 워터마크 (Watermark)
------------------------------------
*/
.watermark {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0; /* 콘텐츠와 충돌하지 않음 */
    pointer-events: none; /* 사용자 입력 방지 */
    display: flex;
    justify-content: center; /* 수평 중앙 정렬 */
    padding-top: 5%;
    background-color: rgba(0, 0, 0, 0.3); /* 반투명 검은 배경 */
}

.watermark img {
    max-width: 80%; /* 이미지 크기 제한 */
    max-height: 80%;
    object-fit: contain; /* 비율 유지하며 이미지 채우기 */
    opacity: 1;
    filter: brightness(5) contrast(3); /* 밝기와 대비 조정 */
}

/*
------------------------------------
 카드 (로그인 폼) 스타일 (Card - Login Form)
------------------------------------
*/
.card {
    background-color: rgba(0, 21, 41, 0.6); /* 반투명 네이비 블루 배경 */
    border-radius: 15px; /* 둥근 모서리 */
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3); /* 그림자 효과 */
    padding: 30px; /* 내부 여백 */
    backdrop-filter: blur(10px); /* 배경 흐림 효과 */
    color: #ffffff; /* 카드 내부 텍스트 색상 */
}

/*
------------------------------------
 버튼 스타일 (Button)
------------------------------------
*/
.btn {
    background-color: #007bff; /* 기본 버튼 배경색 */
    border: none; /* 테두리 제거 */
    color: white; /* 텍스트 색상 */
    transition: all 0.3s ease; /* 호버 효과 전환 */
}

.btn:hover {
    background-color: #0056b3; /* 버튼 호버 시 배경색 */
}

/*
------------------------------------
 입력란 스타일 (Input Fields)
------------------------------------
*/
input.form-control {
    text-align: left; /* 입력 텍스트는 기본 왼쪽 정렬 유지 */
    background-color: rgba(255, 255, 255, 0.2); /* 반투명 흰색 배경 */
    color: #ffffff; /* 입력 텍스트 색상 */
    border: 1px solid rgba(255, 255, 255, 0.5); /* 테두리 색상 */
    padding: 10px; /* 내부 여백 */
    border-radius: 5px; /* 둥근 모서리 */
    transition: all 0.3s ease; /* 상태 변화 전환 */
}

input.form-control::placeholder {
    color: rgba(255, 255, 255, 0.7); /* 플레이스홀더 텍스트 색상 */
}

input.form-control:focus {
    background-color: rgba(255, 255, 255, 0.3); /* 포커스 시 배경 강조 */
    color: #ffffff; /* 텍스트 색상 유지 */
    border: 1px solid #00bcd4; /* 포커스 시 테두리 강조 */
    outline: none; /* 기본 아웃라인 제거 */
}

/*
------------------------------------
 페이지 기본 스타일 (Body)
------------------------------------
*/
body {
    user-select: none; /* 텍스트 선택 방지 */
    font-family: 'Pretendard Variable', Arial, sans-serif !important; /* 기본 폰트 */
    background-color: #f9f9f9; /* 기본 배경색 */
    margin: 0;
    padding: 0;
}

/*
------------------------------------
 로그인 폼 컨테이너 (Login Form Container)
------------------------------------
*/
form {
    width: 100%; /* 입력 폼이 로고와 독립적으로 넓이를 가지도록 설정 */
}

.card-body {
    display: flex;
    flex-direction: column; /* 세로 정렬 */
    justify-content: center; /* 수직 중앙 정렬 */
    align-items: center; /* 수평 중앙 정렬 */
    height: 100%; /* 부모 높이를 100%로 설정 */
}

/*
------------------------------------
 텍스트 로고 스타일 (Animated Logo)
------------------------------------
*/
.animated-logo {
    font-family: 'Pretendard Variable', Arial, sans-serif;
    font-size: 3rem; /* 크기 조정 */
    font-weight: 900; /* 폰트 두께 */
    display: inline-block;
    letter-spacing: 2px;
    animation: flicker 1s infinite alternate, colorShift 1s infinite;
    text-align: center; /* 텍스트 중앙 정렬 */
}

.text-blue {
    color: #007bff; /* 파란색 */
    animation: glowBlue 2s infinite alternate; /* 개별 글자 애니메이션 */
}

.text-white {
    color: #ffffff; /* 흰색 */
    animation: glowWhite 2s infinite alternate; /* 개별 글자 애니메이션 */
}

.plus-symbol {
    display: inline-block;
    background-color: #007bff; /* 파란색 배경 */
    color: #ffffff; /* 흰색 텍스트 */
    border-radius: 100%; /* 원형 배경 */
    padding: 0.2em 0.5em; /* 크기 조정 */
    margin-left: 0.3em; /* 간격 조정 */
    animation: glowPlus 1s infinite alternate; /* 발광 애니메이션 */
}

/*
------------------------------------
 애니메이션 설정 (Animations)
------------------------------------
*/
@keyframes glowPlus {
    0% {
        box-shadow: 0 0 10px #007bff, 0 0 20px #007bff;
    }
    100% {
        box-shadow: 0 0 20px #007bff, 0 0 30px #007bff;
    }
}

@keyframes flicker {
    0% {
        opacity: 1;
        filter: brightness(1);
    }
    50% {
        opacity: 0.8;
        filter: brightness(1.2);
    }
    100% {
        opacity: 1;
        filter: brightness(1);
    }
}

@keyframes colorShift {
    0% {
        text-shadow: 0 0 5px #007bff, 0 0 10px #007bff, 0 0 20px #007bff;
    }
    50% {
        text-shadow: 0 0 10px #ffffff, 0 0 20px #ffffff, 0 0 30px #ffffff;
    }
    100% {
        text-shadow: 0 0 5px #6a1b9a, 0 0 10px #6a1b9a, 0 0 20px #6a1b9a;
    }
}

@keyframes glowBlue {
    0% {
        text-shadow: 0 0 10px #007bff, 0 0 20px #007bff;
    }
    100% {
        text-shadow: 0 0 20px #007bff, 0 0 30px #007bff;
    }
}

@keyframes glowWhite {
    0% {
        text-shadow: 0 0 10px #ffffff, 0 0 20px #ffffff;
    }
    100% {
        text-shadow: 0 0 20px #ffffff, 0 0 30px #ffffff;
    }
}

/*
------------------------------------
 공지사항 섹션 (System Notice)
------------------------------------
*/
.system-notice {
    max-height: 300px; /* 공지사항 최대 높이 설정 */
    width: 100%; /* 리스트의 고정 너비 설정 */
    overflow-y: auto; /* 세로 스크롤 활성화 */
    padding-right: 10px; /* 스크롤바 공간 확보 */
}

.notice-dates {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.7); /* 날짜 색상 */
    margin-top: 2px;
}

#noticeDates {
    font-size: 0.9rem;
    color: gray; /* 모달창에서 날짜 표시 스타일 */
}

.notice-list {
    list-style: none; /* 리스트 스타일 제거 */
    margin: 0;
    max-height: 150px; /* 스크롤 높이는 유지 */
    padding: 10px; /* 내부 여백 */
}

.notice-item {
    cursor: pointer;
    text-decoration: none; /* 밑줄 제거 */
    display: block;
    white-space: nowrap; /* 텍스트를 한 줄로 제한 */
    overflow: hidden; /* 넘치는 텍스트 숨김 */
    text-overflow: ellipsis; /* 넘칠 경우 ... 표시 */
    width: 100%; /* 너비를 부모 요소에 맞춤 */
    padding: 5px 0; /* 항목 간격 */
    transition: color 0.3s ease; /* 색상 변경에 부드러운 전환 추가 */
}

.notice-item.status-Y {
    color: white;
}

.notice-item.status-A {
    color: red;
}

.notice-item:hover {
    color: #0056b3;
}

.system-notice::-webkit-scrollbar {
    width: 8px;
}

.system-notice::-webkit-scrollbar-thumb {
    background-color: rgba(255, 255, 255, 0.3);
    border-radius: 4px;
}

.system-notice::-webkit-scrollbar-track {
    background-color: rgba(0, 0, 0, 0.1);
}

/*
------------------------------------
 상태 설명 (Legend)
------------------------------------
*/
.status-legend {
    display: flex; /* 아이템을 가로로 나열 */
    gap: 10px; /* 아이템 간격 조정 */
    margin-top: 10px; /* 제목과 간격 */
}

.status-item {
    display: flex;
    align-items: center;
    font-size: 0.9rem; /* 텍스트 크기 조정 */
    color: white; /* 텍스트 색상 */
}

.status-circle {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%; /* 원형 */
    margin-right: 5px; /* 텍스트와 간격 */
}

.status-circle.new {
    background-color: white; /* 신규 */
}

.status-circle.important {
    background-color: red; /* 중요 */
    animation: fast-blink 0.8s infinite; /* 빠른 점멸 */
}

@keyframes fast-blink {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
}

@keyframes slow-blink {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.7;
    }
}
/*
------------------------------------
 에러 메시지 기본 스타일 (Error Message)
------------------------------------
*/
#errorMessage {
    color: #dc3545; /* 빨간색 */
    font-weight: bold; /* 강조 */
    transition: transform 0.3s ease, opacity 0.3s ease; /* 전환 효과 */
}

/* 에러 메시지 강조 애니메이션 */
.error-highlight {
    animation: shake 0.5s ease, fadeInOut 1s ease;
}

/* 흔들림 효과 */
@keyframes shake {
    0%, 100% {
        transform: translateX(0);
    }
    20%, 60% {
        transform: translateX(-10px);
    }
    40%, 80% {
        transform: translateX(10px);
    }
}

/* 깜빡임 효과 */
@keyframes fadeInOut {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.5;
    }
}


/*
------------------------------------
 모달 팝업 (Modal Popup)
------------------------------------
*/
.modal-content {
    background-color: rgba(0, 21, 41, 0.8); /* 반투명 네이비 블루 배경 */
    border-radius: 15px; /* 둥근 모서리 */
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3); /* 그림자 효과 */
    color: #ffffff; /* 텍스트 색상 */
    backdrop-filter: blur(10px); /* 배경 흐림 효과 */
    overflow-y: auto; /* 내용이 많으면 스크롤 활성화 */
    min-width: 600px; /* 최소 너비 설정 */
    max-width: 80%; /* 최대 너비를 화면의 80%로 제한 */
    width: auto; /* 너비를 내용에 맞게 자동 조정 */
}

.modal-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.2); /* 구분선 추가 */
    display: flex;
    justify-content: center; /* 제목 중앙 정렬 */
    align-items: center;
    padding: 1rem;
}

.modal-header .btn-close {
    color: #ffffff; /* 닫기 버튼 색상 하얀색 */
    opacity: 1; /* 버튼 선명하게 */
    position: absolute; /* 제목과 분리 */
    right: 1rem;
    top: 1rem;
}

.modal-title {
    font-family: 'Pretendard Variable', Arial, sans-serif;
    font-weight: 700;
    font-size: 1.8rem; /* 제목 크기 */
    color: #00d1b2; /* 강조 색상 */
    margin-bottom: 0.5rem; /* 아래 여백 추가 */
    text-shadow: 0 2px 5px rgba(0, 0, 0, 0.5); /* 약간의 그림자 효과 */
}

.modal-body {
    font-family: 'Pretendard Variable', Arial, sans-serif;
    font-size: 1rem;
    color: rgba(255, 255, 255, 0.9);
    line-height: 1.5; /* 텍스트 가독성을 위한 줄 간격 */
    padding: 2rem; /* 내부 여백 */
}

.modal-body .notice-title {
    font-size: 1.8rem; /* 제목 크기 증가 */
    font-weight: bold;
    margin-bottom: 1rem; /* 아래 여백 추가 */
    text-align: center; /* 제목 중앙 정렬 */
    color: #00d1b2; /* 강조를 위한 밝은 색상 */
    text-shadow: 0 2px 5px rgba(0, 0, 0, 0.5); /* 약간의 그림자 효과 */
}

.modal-body .notice-dates {
    font-size: 1rem;
    color: #c4c4c4;
    margin-bottom: 1rem;
    display: flex; /* 플렉스 컨테이너 */
    flex-direction: row; /* 수평 정렬 */
    justify-content: center; /* 중앙 정렬 */
    gap: 20px; /* 시작일과 종료일 간 간격 */
}

.modal-body .notice-dates span {
    display: inline-block;
    margin: 0.5rem 0; /* 날짜 항목 간격 조정 */
}

.modal-body .notice-dates span::before {
    content: "\25CF"; /* 중간에 •(·) 기호 추가 */
    margin-right: 0.5rem; /* 기호와 텍스트 간격 */
    color: #007bff; /* 기호 색상 */
}

.modal-body .notice-dates-edt span::before {
    content: "\25CF"; /* 중간에 •(·) 기호 추가 */
    margin-right: 0.5rem; /* 기호와 텍스트 간격 */
    color: #ea0000; /* 기호 색상 */
}

.modal-body .notice-content {
    font-size: 1rem; /* 내용 글씨 크기 */
    color: rgba(255, 255, 255, 0.9); /* 내용 텍스트 색상 */
    background-color: rgba(0, 21, 41, 0.8); /* 배경 강조 */
    padding: 1rem; /* 내용 내부 여백 */
    border-radius: 10px; /* 둥근 모서리 */
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3); /* 그림자 추가 */
    line-height: 1.6; /* 가독성을 위한 줄 간격 */
    text-align: justify; /* 양쪽 정렬 */
    margin-top: 1rem; /* 위쪽 여백 */
    word-break: break-word; /* 단어가 길어도 줄바꿈 */
    white-space: pre-wrap; /* 공백과 줄바꿈 반영 */
    /*  line-height: 1.6; /* 줄 간격 조정 */
}

.modal-footer {
    display: flex; /* 버튼 정렬을 위해 플렉스 사용 */
    justify-content: center; /* 중앙 정렬 */
    gap: 10px; /* 버튼 간격 */
    border-top: 1px solid rgba(255, 255, 255, 0.2); /* 상단 경계선 추가 */
    padding: 1rem;
}

.modal-footer .btn {
    padding: 0.5rem 1.5rem; /* 버튼 크기 조정 */
    font-size: 1rem; /* 버튼 글씨 크기 */
    border-radius: 20px; /* 둥근 버튼 */
    background-color: #007bff; /* 기본 버튼 배경색 */
    transition: background-color 0.3s ease; /* 호버 효과 전환 */
}

.modal-footer .btn:hover {
    background-color: #0056b3; /* 버튼 호버 시 배경색 */
}

