body:lang(ja) {
    font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
}

body:lang(ko) {
    font-family: "SF Pro KR", "SF Pro Text", "SF Pro Icons", "Apple Gothic", "HY Gulim", "MalgunGothic", "HY Dotum", "Lexi Gulim", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
}

body:lang(cn) {
    font-family: "SF Pro SC", "SF Pro Text", "SF Pro Icons", "PingFang SC", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
}

.ag-cell-focus,
.ag-cell-no-focus {
    background-color: white !important;
    border-color: #3a60dcd0 !important;
    border-width: 1.5px !important;
}

.no-border.ag-cell:focus {
    border: none !important;
    outline: none;
}

/* 土曜日の色設定 */
td.ui-datepicker-week-end:last-child a.ui-state-default {
    color: #00f !important;
    /* 文字色：青 */
}

/* 日曜日の色設定 */
td.ui-datepicker-week-end:first-child a.ui-state-default {
    color: #f00 !important;
    /* 文字色：赤 */
}

.modal-header {
    font-size: 12px !important;
    height: 22px;
    color: white;
    background-color: #469f76;
}

.modal-title {
    font-size: 16px !important;
}

.modal-footer {
    padding: .5rem !important;
}

.custom-highlight {
    background-color: #b0cef852 !important;
    border-color: #3a60dcd0 !important;
    border-width: 1.0px !important;

    /* 標準ブラウザ */
    user-select: none;
    /* chrome, safari */
    -webkit-user-select: none;
    /* firefox */
    -moz-user-select: none;
    /* edge */
    -ms-user-select: none;
}

.toast {
    opacity: 0;
    transition: opacity 0.5s ease;
    position: fixed;
    padding: 10px 20px;
    background-color: #333;
    color: white;
    border-radius: 5px;
    z-index: 1000;
    top: 50%;
    left: 40%;
    font-size: 15px;
}

.toast.show {
    opacity: 1;
}

.toast.hide {
    opacity: 0;
}


/* bootstrap Overwrite */
.input-group-text {
    padding: 0.3rem 0.75rem;
    font-size: 0.7875rem;
    font-weight: 400;
    line-height: 1.3;
    height: 30px;
}

.col-sm-1 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: 7.0%;
}


input.form-control {
    height: 30px;
    min-height: 30px !important;
    line-height: 1.4;
}

.form-control.filter {
    width: 180px;
}

/* 공통: 기본 select */
.form-select {
    padding: 0 1.75rem 0 0.5rem;
    /* 세로 0, 오른쪽은 화살표 여백 */
    height: 30px;
    /* input.form-control과 동일 높이 */
    font-size: 0.8rem;
    line-height: 30px;
    /* 일부 브라우저에서 수직정렬 보정 */
}

/* 소형 */
.form-select-sm {
    padding: 0 1.75rem 0 0.5rem;
    /* 세로 0 */
    height: 30px;
    font-size: 0.7875rem;
    line-height: 30px;
}

.form-control:focus,
.form-select-sm:focus {
    color: #212529;
    background-color: #fff;
    border-color: #469f76;
    outline: 0;
    -webkit-box-shadow: 0 0 0 0.05rem rgba(70, 159, 118, .15);
    box-shadow: 0 0 0 0.05rem rgba(70, 159, 118, .15);
}

/* file input을 기본 모양으로 복원 + 배경색 지정 */
input[type="file"].form-control,
input[type="file"].form-control-sm {
    background-color: #e8f3ed;
    margin-bottom: 2px;
}


/* 드롭다운 메뉴가 열렸을 때 외곽선 추가 */
.btn.dropdown-toggle {
    padding-left: 10px;
    padding-right: 10px;
}

.dropdown-menu.show {
    border: 1.7px solid gray;
    width: auto;
    /* 아이템 길이에 맞춤 */
    white-space: nowrap;
    /* 줄바꿈 방지 */
}

.dropdown-menu {
    --bs-dropdown-bg: #faf9fd;
    --bs-dropdown-link-hover-color: #f2f5f8;
    --bs-dropdown-link-hover-bg: #86b1ee;
    --bs-dropdown-item-padding-y: 0.33rem;
    --bs-dropdown-padding-y: 0.33rem;
    --bs-dropdown-min-width: 14rem;
}

.dropdown-divider {
    margin: 0.3rem 0;
}

.dropdown-item {
    font-size: 0.7875rem;
    cursor: pointer;
}

.dropdown-item.red {
    color: red;
}

.btn-search {
    width: 70px;
    margin-top: 1px;
    margin-left: 5px;
    padding: 2.7px;
}

.custom-status-bar {
    width: 100%;
    font-size: 12px;
    ;
    /* text-align: right; */
    padding: 5px;
    background: #f8f8f8;
    border-top: none;
    border-left: 1px solid #babfc7;
    border-right: 1px solid #babfc7;
    border-bottom: 1px solid #babfc7;
    border-bottom-left-radius: 2px;
    border-bottom-right-radius: 2px;
}


.btn-sm,
.btn-group-sm>.btn {
    --bs-btn-padding-y: 0.2rem;
    --bs-btn-padding-x: 0.3rem;
    --bs-btn-font-size: 0.7875rem;
    --bs-btn-border-radius: 0.2rem;
    min-width: 30px;
}

.in-grid {
    margin-right: 2px;
    margin-bottom: 2px;
    min-width: 20px;
    padding-top: 1px;
    padding-bottom: 1px;
    padding-left: 3px;
    padding-right: 3px;
}

/* Ag-Grid font Size */
.ag-theme-alpine {
    font-size: 12px;
}

div.ag-theme-alpine div.ag-row {
    font-size: 12px !important;
}

/* textareaの方の移動止め */
.container {
    margin: auto;
    padding: unset;
}

/* 래퍼: 기준 박스 + 기본 높이만 차지 */
.textarea-search {
    position: relative;
    display: inline-block;
    /* 한 줄에 배치하려면 inline-block */
    width: 180px;
    /* 기본 폭 */
    height: 30px;
    /* 기본 높이(접힌 상태 높이 고정) */
}

/* 기본 상태: 일반 흐름, 접힌 높이 */
.textarea-search textarea {
    width: 100%;
    height: 30px;
    resize: none;
    overflow: hidden;
    box-shadow: none;
    position: static;
    z-index: auto;
}

/* 부트스트랩 기본 min-height 무력화 */
.textarea-search textarea.form-control {
    min-height: 30px !important;
    line-height: 1.4;
}

/* 포커스 시: 래퍼를 기준으로 겹쳐 크게 */
.textarea-search:focus-within textarea {
    position: absolute;
    /* 겹치기 */
    left: 0;
    top: 0;
    height: 250px;
    /* 펼칠 때 원하는 높이 */
    z-index: 1000;
    background: #fff;
    box-shadow: 0 4px 8px rgba(0, 0, 0, .1);
}

/* 웨이팅 오버레이 스타일 */
.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(0 0 0 / 31%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    color: white;
    font-size: 1.5em;
    text-align: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}


/* 로딩 스피너 */
.loading-spinner {
    border: 6px solid #f3f3f3;
    /* Light grey */
    border-top: 6px solid #3498db;
    /* Blue */
    border-radius: 50%;
    width: 40px;
    height: 40px;
    animation: spin 1s linear infinite;
    /* 스피너 애니메이션 */
    margin-bottom: 20px;
}

.loading-text {
    font-size: 16px;
}

/* 활성화 시 보여주기 위한 클래스 */
.loading-overlay.active {
    opacity: 1;
    visibility: visible;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* layout.blade.php */
html {
    height: 100%;
}

body {
    margin: 0;
    padding: 0;
    font-family: var(--bs-font-sans-serif);
    font-size: 14px;
    line-height: 1.5;
    color: #212529;
    background-color: #fff;
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

.page {
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    height: 100vh;
    background: #F5F8F7;
}

.page-content {
    flex-grow: 1;
    display: flex;
    overflow: hidden;
}

.content-inner {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding-bottom: 0px;
}

.content-header {
    flex-shrink: 0;
    padding: 0px 20px 0 20px;
    margin-top: 10px;
}

.content-wrapper {
    flex-grow: 1;
    overflow-y: auto;
    min-height: 0;
}

#sidebar {
    overflow-y: auto;
    overflow-x: hidden;
    height: calc(100vh - 130px);
}

.vdp-datepicker__calendar .cell.day-header:first-child {
    color: #f00 !important;
}

.vdp-datepicker__calendar .cell.day-header:nth-child(7) {
    color: #00f !important;
}

.vdp-datepicker__calendar .cell {
    background: white !important;
}

/* 土曜日の色設定 */
.vdp-datepicker__calendar .cell.day.highlighted.weekend.sat {
    color: #00f !important;
    /* 文字色：青 */
}

/* 日曜日の色設定 */
.vdp-datepicker__calendar .cell.day.highlighted.weekend.sun {
    color: #f00 !important;
    /* 文字色：赤 */
}

/* 今日の色設定(選択) */
.vdp-datepicker__calendar .cell.day.selected.today {
    background: #0394b5 !important;
    color: white !important;
}

/* 今日の色設定 */
.vdp-datepicker__calendar .cell.day.today {
    background: #fffa90 !important;
    color: #83822a !important;
    /* 文字色：黄 */
}

/* 選択の色設定 */
.vdp-datepicker__calendar .cell.day.selected {
    background: #1d7ffe !important;
    color: white !important;
}

/* サイズ＆その他 */
.vdp-datepicker input {
    min-height: calc(1.5em + (0.5rem + 2px));
    padding: 0.25rem 0.5rem;
    font-size: .875rem;
    border: 1px solid #ced4da;
    border-radius: 0.2rem;
}

.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    margin-top: 0px;
}

.pagination button {
    border: none;
    background-color: transparent;
    cursor: pointer;
    color: royalblue;
    font-size: 13px;
}

.pagination button.active {
    background-color: #007bff;
    color: white;
}

.pagination button:disabled {
    background-color: transparent;
    cursor: not-allowed;
}


.cnt {
    padding: 0px;
    margin-top: 0px;
    margin-bottom: 0px;
    font-size: 12px;
    text-align: center;
}

.cnt_head {
    padding: 0px;
    margin-top: 5px;
    margin-bottom: 5px;
    font-size: 10px;
    font-weight: bold;
    text-align: center;
}

.cnt_normal {
    padding: 0px;
    margin: 0px;
    margin-left: 15px;
    font-size: 12px;
    text-align: left !important;
}

table.table-bordered {
    border: 1px solid white;
    margin-top: 0px;
}

table.table-bordered>thead>tr>th {
    padding: 5px;
    width: 85px;
    border: 2px solid white !important;
}

table.table-bordered>tbody>tr>td {
    padding: 5px;
    width: 85px;
    border: 2px solid white;
}

td {
    vertical-align: middle !important;
}

#statusReload {
    position: absolute;
    cursor: pointer;
    width: 14px;
    height: 14px;
    z-index: 1;
}

.circle-icon {
    width: 21px !important;
    height: 21px !important;
    background: rgba(192, 192, 192, 0.4);
    border-radius: 50%;
    text-align: center;
    vertical-align: middle;
    box-shadow: 1px 1px 1px #888888;
    padding: 3px;
}

.ui-widget {
    font-size: 0.8em;
}

.pop-label {
    padding-top: 3pt;
    margin-right: 5pt;
    text-align: right;
}

.pop-row {
    margin-bottom: 3px;
    font-size: 14px;
}

.pop-text {
    border-width: 1px;
    padding: 2px;
    font-size: 14px !important;
}

.ui-tabs .ui-tabs-panel {
    font-family: 'Meiryo', "ヒラギノ角ゴ Pro W3", "ＭＳ Ｐゴシック", "Osaka", sans-serif;
    display: block;
    border-width: 0;
    padding: 1em 1.4em;
    background: #e8f3ed;
}

.ui-tabs .ui-tabs-nav li.ui-tabs-active {
    margin-bottom: -1px;
    padding-bottom: 1px;
    background: #e8f3ed;
}

.ui-state-active,
.ui-widget-content .ui-state-active,
.ui-widget-header .ui-state-active,
a.ui-button:active,
.ui-button:active,
.ui-button.ui-state-active:hover {
    border: 1px solid darkgreen;
    /* background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x; */
    font-weight: normal;
    color: #212121;
}

.ui-icon-background,
.ui-state-active .ui-icon-background {
    border: #e8f3ed;
    background-color: #212121;
}

.ui-state-active a,
.ui-state-active a:link,
.ui-state-active a:visited {
    color: #212121;
    text-decoration: none;
}

.input-required {
    border-width: 1px;
    background: #b6d9c6;
}

.imgThumb {
    border: solid 1px #E6E6E6;
    object-fit: contain;
    object-position: center;
    background: white;
    cursor: pointer;
}

fieldset {
    margin-bottom: 15px;
    padding: 0 10px 10px;
    border: 1px LightGrey solid;
    border-radius: 7px;
}


.multipleSelection {
    width: 300px;
    position: relative;
}

.selectBox {
    cursor: pointer;
    width: 100%;
    position: relative;

}

.selectBox select {
    width: 100%;
}

.overSelect {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
}

#checkBoxList {
    border: 1px black solid;
    position: absolute;
    width: 100%;
    background-color: white;
    z-index: 10;
    /* Ensure it appears above other elements */
    max-height: 250px;
    /* Limit height for scroll */
    overflow-y: scroll;
    /* Enable vertical scroll */
    padding: 10px;
    /* Add padding for inner spacing */
}

#checkBoxList label {
    display: block;
    font-size: 0.8rem;
    padding: 4px;
}

#checkBoxList label:hover {
    background-color: #4F615E;
    color: white;
    /* Added text color for better visibility */
}




.cnt_red {
    color: red;
}

.cnt_tomato {
    color: tomato;
}

.cnt_blue {
    color: blue;
}

.cnt_gray {
    color: dimgray;
}

.cnt_green {
    color: darkgreen;
}

.cnt_chocolate {
    color: chocolate;
}

.cnt_white {
    color: white;
}

.cnt_lightcyan {
    color: lightcyan;
}

.cnt_darkgreen {
    color: #04B504;
}


.bg_white {
    background: white !important;
}

.bg_lightpink {
    background: lightpink !important;
}

.bg_aquamarine {
    background: mediumaquamarine !important;
}

.bg_cornflowerblue {
    background: cornflowerblue !important;
}

.ag-center-header {
    text-align: center;
}
.ag-center-cell {
    text-align: center;
}

/* Vue가 로딩되기 전까지 v-cloak 속성이 있는 태그를 숨김 */
[v-cloak] { display: none !important; }