/* 여기에 light css 작성  */

.opacity-50 {
    opacity: 0.5;
}

/* board */
.board-content img {
    max-width: 100% !important;
    height: auto !important;
    display: block;
    object-fit: contain;
}

.board-content table {
    max-width: 100%;
    overflow-x: auto;
    display: block;
}

.btn.big {
    width: 70px;
    height: 70px;
    font-size: 18px;
}


@keyframes new {
    0% {
        background-color: #ffcc00;
    }
    50% {
        background-color: red;
    }
    100% {
        background-color: #ffcc00;
    }
}

.box-new {
    animation: new 1s infinite; /* 1초마다 반복 */
}

/* board end */


/* Qeditor  */
.ql-editor {
    min-height: 300px;
    font-family: 'Nanum Gothic', sans-serif;
}
/* Qeditor end */

/* 에러페이지 */
/* 전체 화면을 덮는 스타일 */
.error-page {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: #000;
    font-family: 'Poppins', sans-serif;
    z-index: 9999 !important;
}
/* 오류 메시지 컨텐츠 */
.error-content {
    text-align: center;
    animation: fadeIn 0.8s ease-in-out;
}
/* 에러 이미지 */
.error-image {
    width: 280px; /* 이미지 크기 */
    margin-bottom: 20px;
}
/* 에러 코드 스타일 */
.error-content h1 {
    font-size: 6rem;
    font-weight: bold;
    color: #ff8c00; /* 오렌지 */
    text-shadow: 2px 2px 8px rgba(255, 140, 0, 0.3);
    margin-bottom: 60px;
}
/* 홈으로 돌아가기 버튼 */
.home-btn {
    display: inline-block;
    padding: 10px 28px;
    font-size: 1rem;
    font-weight: bold;
    text-decoration: none;
    color: #fff;
    background: rgba(105, 108, 255, 0.9);
    border-radius: 30px;
    transition: 0.3s ease-in-out;
    box-shadow: 0 4px 15px rgba(105, 108, 255, 0.5);
}
/* 버튼 호버 효과 */
.home-btn:hover {
    background: linear-gradient(90deg, orange, #ff8c00);
    box-shadow: 0 0 20px rgba(255, 140, 0, 1);
    transform: scale(1.05);
    color: #fff;
}
/* 페이드 인 애니메이션 */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* 휴가 */

.fc-daygrid-event {
    pointer-events: none !important;
}
/* 이벤트 선 없게 */
.fc-event {
    border: none;
}
/* 오전 반차 그래프 (왼쪽 절반) */
.fc-daygrid-event.half-day-am {
    width: 50% !important;
    height: 8px !important;
    border-radius: 2px !important;
    font-size: 0px !important;
    margin-left: -0.5% !important;
}
/* 오후 반차 그래프 (오른쪽 절반) */
.fc-daygrid-event.half-day-pm {
    width: 50% !important;
    height: 8px !important;
    margin-left: auto !important;
    border-radius: 2px !important;
    font-size: 0px !important;
    margin-right: -0.5% !important;
}
/* 연차 그래프 (풀) */
.fc-daygrid-event.full-day {
    width: 100% !important;
    height: 8px !important;
    margin-left: auto !important;
    border-radius: 2px !important;
    font-size: 0px !important;
}
/* 공휴일,일요일 색상 */
.fc-day-sun .fc-daygrid-day-number,
.fc-col-header-cell:first-child .fc-col-header-cell-cushion {
    color: #ff4500 !important;
}
/* 토요일 색상 */
.fc-day-sat .fc-daygrid-day-number,
.fc-col-header-cell:last-child .fc-col-header-cell-cushion {
    color: #6076e0 !important;
}
/* 캘린더 날짜 왼쪽 상단 위치하게 */
.fc-daygrid-day-number {
    margin-right: auto;
}
/* 데이트피커 뾰족없게 */
.flatpickr-calendar:before,
.flatpickr-calendar:after {
    display: none !important;
}
/* 기본 스타일은 그대로 두고, 데이트피커 인풋의 추가 스타일 정의 */
.fc-toolbar-title {
    cursor: pointer;
}
/* 클릭 가능한 날짜 */
.fc-daygrid-day.clickable {
    cursor: pointer;
    transition: background-color 0.2s ease-in-out;
}
/* 마우스를 올렸을 때 효과 */
.fc-daygrid-day.clickable:hover {
    background-color: rgba(0, 0, 0, 0.05); /* 연한 배경 효과 */
}
/* 주말 (토요일, 일요일) 및 공휴일 */
.fc-day-sat-sun {
    cursor: not-allowed !important;
}
/* 과거 날짜 (오늘 -7일일) */
.fc-daygrid-day.past {
    cursor: not-allowed !important;
}
/* 기본 이벤트 스타일 */
.fc-daygrid-event {
    border: none !important;
    border-radius: 4px;
}
/* 오전 반차 활성화 영역 (왼쪽 절반) */
.selected-event.half-day-am {
    width: 50% !important;
    left: 0 !important;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
}
/* 오후 반차 활성화 영역 (오른쪽 절반) */
.selected-event.half-day-pm {
    width: 50% !important;
    margin-left: auto !important;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}

/* 휴가 모달 */
.vac-modal-dialog {
    background: none !important;
    box-shadow: none !important;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding-bottom: 20px;
}
.vac-modal-content {
    background: #fff;
    padding: 20px;
    box-shadow:
        0px -4px 5px rgba(0, 0, 0, 0.1),
        0px 4px 0px rgba(0, 0, 0, 0);
    max-width: 500px;
    width: 100%;
    position: relative;
}
.vac-modal-body {
    max-height: 140px;
    overflow-y: auto;
}
.vac-modal-text {
    font-size: 14px;
    text-align: center;
    margin-bottom: 20px;
}
.count-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-bottom: 10px;
}
.count-value {
    font-size: 23px;
    font-weight: bold;
    min-width: 50px;
    text-align: center;
}
.custom-button {
    background: none;
    border: none;
    width: 55px;
    height: 55px;
    font-size: 26px;
    color: white;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.2s;
}
.vac-modal-title {
    margin-bottom: 10px;
}
.vacation-item {
    display: flex;
    align-items: center;
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 8px;
    padding: 5px 10px;
    border-radius: 5px;
    background: #f9f9f9;
}
.close-btn {
    position: absolute;
    top: 10px;
    right: 10px;
    background: none;
    border: none;
    font-size: 18px;
    cursor: pointer;
}
.close-btn:hover {
    color: #525252;
}
.count-btn {
    font-size: 18px;
    padding: 2px 10px;
    border: none;
    background: #2c3e50;
    color: white;
    border-radius: 5px;
    cursor: pointer;
}
.count-btn:hover {
    background: #1d2c44;
}
.count-btn:disabled {
    background: #cccccc;
    cursor: not-allowed;
}
.custom-button-container {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}
.custom-button {
    background: none;
    border: none;
    padding: 10px;
    cursor: pointer;
}
.custom-button i {
    color: #282538;
    font-size: 25px;
}
.custom-button:hover i {
    color: #ff0800;
}
.custom-button:disabled {
    cursor: not-allowed;
}

/* 휴가 사원프로필 */
.profile-list {
    cursor: pointer;
}

/* 오전/오후반차,저장버튼 */
/* 버튼 기본 스타일 */
.vac-btn {
    transition: all 0.2sease-in-out;
    border: 2px solid transparent;
}
/* 마우스를 올렸을 때 */
.vac-btn:hover {
    filter: brightness(90%);
    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.2);
    transform: scale(1.05);
}
/* 버튼이 눌렸을 때 */
.vac-btn:active {
    transform: scale(0.9);
    box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.2);
}
/* 선택된 (눌린) 버튼 */
.vac-btn.active {
    box-shadow: 0px 4px 15px rgba(224, 224, 224, 0.3);
    transform: scale(1.1);
}
.vac-btn-warning {
    color: #fff;
    background-color: #ffc144;
    border-color: #ffc144;
    box-shadow: 0 0.125rem 0.25rem 0 rgba(255, 171, 0, 0.4);
    font-size: 28px;
}
/* AM 버튼 (선택된 상태) */
.vac-btn-warning.active {
    background-color: #ff7300 !important;
    color: #fff;
}
.vac-btn-info {
    color: #fff;
    background-color: #03c3ec;
    border-color: #03c3ec;
    box-shadow: 0 0.125rem 0.25rem 0 rgba(3, 195, 236, 0.4);
    font-size: 28px;
}
/* PM 버튼 (선택된 상태) */
.vac-btn-info.active {
    background-color: #0b5ed7 !important;
    color: white;
}
/* 풀 연차 버튼 스타일 */
.vac-btn-primary {
    color: #fff;
    background-color: #28a745; /* 녹색 */
    border-color: #28a745;
    box-shadow: 0 0.125rem 0.25rem 0 rgba(40, 167, 69, 0.4);
    font-size: 28px;
    transition: all 0.2s ease-in-out;
}
/* 풀 연차 버튼 활성화 스타일 */
.vac-btn-primary.active {
    background-color: #218838 !important;
    color: #fff;
    border: 3px solid #91d091 !important;
    box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.3);
    transform: scale(1.1);
}
/* 풀 연차 버튼이 눌렸을 때 효과 */
.vac-btn-primary:active {
    transform: scale(0.9);
    box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.2);
}
/* 버튼 기본 */
.vac-btn-success {
    transition: all 0.2s ease-in-out;
    background-color: #871919 !important;
    color: white;
    border: 2px solid transparent;
    font-size: 30px;
}
/* 버튼 활성화 */
.vac-btn-success.active {
    background-color: #ff0000 !important;
    color: white !important;
    border: 3px solid #eb9f9f !important;
    box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.3);
    transform: scale(1.1);
}
/* 버튼 비활성화 */
.vac-btn-success.disabled {
    background-color: #bbb8b8 !important;
    color: white !important;
    cursor: not-allowed !important;
    box-shadow: none;
    transform: none;
    opacity: 0.5;
}

/* 작은 화면에서 버튼 크기 조정 */
@media (max-width: 1700px) {
    .count-btn {
        width: 28px;
        height: 28px;
        font-size: 15px;
    }
    .count-container {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0px;
        margin-bottom: 8px;
    }
    .count-value {
        font-size: 20px;
    }
    .custom-button {
        width: 45px;
        height: 45px;
        font-size: 22px;
    }
    .vac-grant-modal-title {
        font-size: 18px;
    }
    .vac-modal-text {
        font-size: 13px;
    }
    .vac-modal-title {
        font-size: 17px;
        margin-bottom: 10px;
    }
    .vacation-item {
        font-size: 13px;
        text-align: center;
        margin-bottom: 5px;
    }
    .vac-btn {
        width: 50px;
        height: 50px;
        font-size: 18px;
    }
    .vac-btn-success {
        font-size: 20px;
        width: 50px;
        height: 50px;
    }
}
@media (max-width: 1500px) {
    .vac-grant-modal-title {
        font-size: 14px;
    }
    .vac-modal-text {
        font-size: 11px;
    }
    .vac-modal-title {
        font-size: 13px;
        margin-bottom: 10px;
    }
    .close-btn {
        top: 5px;
        right: 5px;
        font-size: 13px;
    }
    .vacation-item {
        font-size: 11px;
        text-align: center;
        margin-bottom: 5px;
    }
    .vac-btn {
        width: 40px;
        height: 40px;
        font-size: 18px;
    }
    .vac-btn-success {
        font-size: 20px;
        width: 40px;
        height: 40px;
    }
}

.grayscaleImg {
    filter: grayscale(100%);
}

/* scrollbar 안보이게 */
.scrollbar-none {
    scrollbar-width: none;
}

/* project list */

.hidden-start-input {
    position: absolute;
    top: 103%;
    left: 20%;
    width: 100%;
    height: 40px;
    opacity: 0;
}

.hidden-end-input {
    position: absolute;
    top: 113.3%;
    left: 20%;
    width: 100%;
    height: 40px;
    opacity: 0;
}

.map {
    top: -160px;
    left: -5px;
}

@keyframes sparkle {
    0% {
        color: #ffcc00;
    }
    50% {
        color: red;
    }
    100% {
        color: #ffcc00;
    }
}

.bxs-map {
    animation: sparkle 1s infinite; /* 1초마다 반복 */
}

.popover-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 2;
    background-color: #fff !important;
    box-shadow: 0 0.125rem 0.25rem rgba(161, 172, 184, 0.4);
    transition: all 0.23s ease 0.1s;
    transform: translate(23px, -25px);
}

.popover-close:hover {
    opacity: 1;
    outline: none;
    transform: translate(20px, -20px);
}

.end-project {
    background-color: #ddd !important;
}
/* project list end */

/* commuters project list */
.commuter-list {
    max-height: 358px;
    overflow-y: auto;
    scrollbar-width: none;
}
/* commuters project list end */

/* Scroll Button */

.scroll-top-btn {
    bottom: 20px;
    right: 21.7%;
    transition:
        opacity 0.4s ease,
        visibility 0.4s ease,
        transform 0.4s ease;
}

.scroll-top-btn.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.scroll-top-btn.hidden {
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
}

/* Scroll Button end */

/* 중앙 콘텐츠 자동 조정 */
.layout-page {
    flex-grow: 1;
    min-width: 0; /* flexbox 내에서 올바른 크기 계산 */
    margin-right: 20%; /* 채팅 사이드바의 너비만큼 밀리도록 설정 */
}

/* 중앙 콘텐츠 자동 조정 end */

/* media */
/* 탑바 범위조정 */
.layout-navbar-fixed .layout-navbar.navbar-detached {
    width: calc(100% - 1.625rem * 2 - 16.25rem - 20%) !important;
}

@media (min-width: 1200px) {
    nav#layout-navbar {
        left: calc(16.25rem - 20%) !important;
    }

    .layout-navbar.navbar-detached.container-xxl {
        max-width: calc(1440px - 1.625rem * 2) !important;
    }
}

/* 탑바 범위조정(1200px 이하) */
@media (max-width: 1200px) {
    nav#layout-navbar {
        left: -20% !important;
    }

    .layout-navbar-fixed .layout-navbar.navbar-detached {
        width: calc(100% - 1.625rem * 2 - 20%) !important;
    }
}

/* 탑바 범위조정(992px 이하) */
@media (max-width: 992px) {
    .layout-navbar-fixed .layout-navbar.navbar-detached {
        width: calc(100% - 2rem - 20%) !important;
    }
}

/* Mobile */
/* 가로모드 모바일 디바이스 (가로 해상도가 768px 보다 작은 화면에 적용) */
@media (max-width: 767px) {
    .chat-sidebar {
        display: none !important;
    }

    nav#layout-navbar {
        left: 0 !important;
    }

    .layout-navbar-fixed .layout-navbar.navbar-detached {
        width: calc(100% - 2rem) !important;
    }

    .layout-page {
        margin-right: 0 !important;
    }

    #app-calendar-sidebar {
        width: 100%;
    }
}

/* 세로모드 모바일 디바이스 (가로 해상도가 576px 보다 작은 화면에 적용)  */
@media (max-width: 575px) {
}

/* Mobile end */
/* media end */


/* BoardComment */

.beforeRotate {
    transition: transform 0.3s ease-in-out;
}

.rotate {
    transform: rotate(45deg);
    transition: transform 0.3s ease-in-out;
}

/* BoardComment end */

/* vote */
.hidden-date-input {
    position: absolute;
    top: 31.5%;
    left: 17%;
    width: 100%;
    opacity: 0;
    pointer-events: none;
}

/* 권한부여 */
.user-card-container {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
    margin-top: 20px;
}
.user-card {
    width: 200px;
    padding: 15px;
    border: 1px solid #ddd;
    border-radius: 10px;
    background-color: #fff;
    box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.profile-img {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 10px;
}
.switch {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 24px;
    margin-top: 5px;
}
.switch input {
    opacity: 0;
    width: 0;
    height: 0;
}
.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    transition: .4s;
    border-radius: 24px;
}
.slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 4px;
    bottom: 3px;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
}
input:checked + .slider {
    background-color: #4CAF50;
}

input:checked + .slider:before {
    transform: translateX(24px);
}
/* 권한부여 끝 */


/* toast */

.bs-toast {
    bottom: 20px;
    right: 20px;
}

/* toast end */