:root,
[data-bs-theme=light] {
  --bs-primary: #4a7425;
  --bs-primary-rgb: 74, 116, 37;
  --bs-primary-bg-subtle: #daedca;
  --bs-body-bg: #f9faf7;
  --bs-link-hover-color: #2c9102;
  --bs-border-color-translucent: #e5e8e2;
}

body {
  min-width: 1200px;
}

a {
  cursor: pointer;
}

.loading-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4); /* 반투명 배경 */
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
}

.spinner {
  width: 60px;
  height: 60px;
  border: 6px solid #ccc;
  border-top: 6px solid #007bff;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@media (min-width: 769px) {
    body[data-sidebar-size=sm] {
      min-height: unset;
    }
}

.bg-overlay {
  min-width: 1200px;
}

/* header */
.user .user-sub-title {
  color: var(--bs-secondary);
}

.user .user-item-desc span i {
  display: inline-block;
  width: 15px;
  text-align: center;
}

@media (max-width: 991.98px) {
	.navbar-con-name {
	  width: calc(100% - 100px);
	}

	.con-name {
	  width: calc(100% - 52px);
	  font-size: 1.25rem;
	}

	.user .user-name {
	  max-width: 76px;
	}
}
/* end header */

/* vertical menu */
.logo {
  display: flex;
  align-items: center;
  height: 70px;
}
#sidebar-menu ul li a:hover {
  color: #3c4038;
}

#sidebar-menu ul li a:hover .nav-icon {
  color: #3c4038;
}

#sidebar-menu ul li.mm-active {
  color: #62ab01;
}

#sidebar-menu ul li.mm-active > a {
  background-color: #f2fbe8;
  color: #62ab01;
}

#sidebar-menu ul li.mm-active > a .nav-icon {
  color: #62ab01 !important;
}

#sidebar-menu ul li.mm-active .mm-show .mm-active > a {
  color: #3c4038 !important;
}

#sidebar-menu ul li.mm-active .mm-show .mm-active > a:before {
  border-color: #62ab01 !important;
  background-color: #62ab01 !important;
}

body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a {
  background-color: #f2fbe8;
  color: #62ab01;
}

body[data-sidebar-size=sm] .vertical-menu #sidebar-menu>ul>li:hover>a .nav-icon {
  color: #62ab01 !important;
}
/* end vertical menu */

/* main content */
.page-content {
  padding: calc(70px + 20px) calc(20px / 2) calc(20px / 2) calc(20px / 2);
}

/* end main content */

/* nav */
.nav-pills {
  --bs-nav-pills-link-active-bg: #51d28c;
}
/* end nav */

/* form */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
  -webkit-box-shadow: 0 0 0px 1000px transparent inset;
  box-shadow: 0 0 0px 1000px transparent inset;
  transition: background-color 5000s ease-in-out 0s;
}

input:autofill,
input:autofill:hover,
input:autofill:focus,
input:autofill:active {
  -webkit-box-shadow: 0 0 0px 1000px transparent inset;
  box-shadow: 0 0 0px 1000px transparent inset;
  transition: background-color 5000s ease-in-out 0s;
}

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

.form-control-icon {
  position: relative;
}

.form-control-icon .form-control {
  padding-right: 2.25rem;
}

.form-control-icon i {
  position: absolute;
  top: 0;
  right: 0;
  padding: .5rem .75rem;
}

.form-control-label {
  margin-right: 0.25rem;
  margin-bottom: 0;
  font-weight: 600;
  line-height: 2.5;
  color: var(--bs-heading-color);
  white-space: nowrap;
}

.form-control:focus{
  border-color: #51d28c;
}

.form-control.readonly {
  background: #f5f5f5;
  border-color: #f5f5f5;
  cursor: inherit;
}

.form-control.readonly:focus {
  border-color: #f5f5f5;
}

.form-control.datepicker-range{
  width: 240px;
}

.form-select{
  padding-right: 2rem;
}

.form-select:focus{
  border-color: #51d28c;
  box-shadow: 0 0 0 .15rem rgba(6, 220, 3, .25);
}

.form-select.form-select-placeholder{
  color: #B5B5B5;
}

.form-check-input:focus {
  border-color: #9cee81;
}

.form-check-input:checked {
  background-color: #51d28c;
  border-color: #51d28c;
}

.form-check-info .form-check-input:checked {
  background-color: #acf35f;
  border-color: #acf35f;
}
/* end form */

/* table */
.table-responsive {
  margin-bottom: 1rem;
}

.table-responsive .table {
  margin-bottom: 0;
}

.table>thead>tr>th,
.table-vr th {
  font-weight: bold;
  background-color: var(--bs-gray-200);
}

.table-vr th,
.table-vr td {
  font-size: 14px;
  line-height: 1;
}

.table-top-info {
  border: 0;
}

.table-top-info th {
  padding: 0.25rem;
  font-size: 0.75rem;
  line-height: 1;
  border: 0;
  background-color: var(--bs-gray-200);
}

.table-top-info td {
  padding: 0.25rem;
  font-size: 0.75rem;
  line-height: 1;
  border-width: 1px;
}

.table-hover>tbody>tr:hover>* {
  --bs-table-color-state: #62ab01;
  --bs-table-bg-state: #f2fbe8;
  cursor: pointer;
}

.card-body.p-0 .table {
  border: 0;
}
.card-body.p-0 .table th,
.card-body.p-0 .table td{
  border: 1px solid #ddd;
}

.table-text-dark th,
.table-text-dark td {
  color: var(--bs-gray-900);
}

.table-sm-text th,
.table-sm-text td {
  font-size: 0.75rem;
}

.align-middle-th th {
  vertical-align: middle;
}

.pagination {
  --bs-pagination-active-bg: #51d28c;
  --bs-pagination-active-border-color: #51d28c;
}

.text-wrap-smh th,
.text-wrap-smh td{
    white-space: normal !important;
    word-break: break-all !important;
    overflow-wrap: break-word !important;
}
/* end table */

/* datatable */
div.dt-container select.dt-input {
  display: inline-block;
  margin-right: 0.25rem;
  font-size: .9rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--bs-body-color);
  background-color: var(--bs-white);
  background-repeat: no-repeat;
  background-position: right .75rem center;
  background-size: 16px 12px;
  border: 1px solid var(--bs-border-color);
  border-radius: .25rem;
  -webkit-transition: border-color .15s ease-in-out, -webkit-box-shadow .15s ease-in-out;
  transition: border-color .15s ease-in-out, -webkit-box-shadow .15s ease-in-out;
  transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
  transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out, -webkit-box-shadow .15s ease-in-out;
}

div.dt-container select.dt-input:focus-visible {
  outline: none;
}

div.dt-container select.dt-input:focus{
  border-color: #51d28c;
  box-shadow: 0 0 0 .15rem rgba(6, 220, 3, .25);
}

div.dt-container .dt-paging .dt-paging-button {
  border-radius: 30px !important;
  margin: 0 5px;
  border: none;
  width: 32px;
  height: 32px;
  padding: 0;
  text-align: center;
  line-height: 32px;
}

div.dt-container .dt-paging .dt-paging-button:hover {
  z-index: 2;
  color: #2c9102 !important;
  border: none;
  background: none;
  background-color: #f8f9fa;
}

div.dt-container .dt-paging .dt-paging-button.current,
div.dt-container .dt-paging .dt-paging-button.current:hover {
  z-index: 3;
  color: #fff !important;
  border: none;
  background: none;
  background-color: #51d28c;
}

div.dt-container .dt-paging .dt-paging-button.disabled,
div.dt-container .dt-paging .dt-paging-button.disabled:hover,
div.dt-container .dt-paging .dt-paging-button.disabled:active {
  color: rgba(73, 80, 87, 0.75) !important;
  border: none;
  background-color: #f5f6f8;
}

table.dataTable.table-sm>:not(caption)>*>* {
  padding: .25rem .25rem;
}

table.dataTable.text-center thead th,
table.dataTable.text-center thead td,
table.dataTable.text-center tbody th,
table.dataTable.text-center tbody td,
table.dataTable.text-center tfoot th,
table.dataTable.text-center tfoot td {
  text-align: center !important;
}

table.dataTable.datatable-bordered>thead>tr>th,
table.dataTable.datatable-bordered>thead>tr>td,
table.dataTable.datatable-bordered>tbody>tr>th,
table.dataTable.datatable-bordered>tbody>tr>td {
  border-top: 1px solid rgba(116,120,141, .5);
  border-bottom: 0;
  border-left: 1px solid rgba(116,120,141, .5);
  border-right: 0;
}

table.dataTable.datatable-bordered>thead>tr>th:last-child,
table.dataTable.datatable-bordered>thead>tr>td:last-child
table.dataTable.datatable-bordered>tbody>tr>th:last-child,
table.dataTable.datatable-bordered>tbody>tr>td:last-child  {
  border-right: 1px solid rgba(116,120,141, .5);
}

.dt-scroll-body::-webkit-scrollbar {
  -webkit-appearance: none;
}

.dt-scroll-body::-webkit-scrollbar:vertical {
  width: 12px;
}

.dt-scroll-body::-webkit-scrollbar:horizontal {
  height: 9px;
}

.dt-scroll-body::-webkit-scrollbar-thumb {
  background-color: rgba(52, 58, 64, 0.2);
  border-radius: 10px;
  border: 2px solid #fff;
}

.dt-scroll-body::-webkit-scrollbar-track {
  border-radius: 10px;
  background-color: #fff;
}

@media screen and (max-width: 767px) {
    div.dt-container div.dt-layout-row:not(.dt-layout-table) {
        display: flex;
    }

    div.dt-container div.dt-layout-row:not(.dt-layout-table) div.dt-layout-cell {
        display: flex;
    }

    div.dt-container div.dt-layout-row:not(.dt-layout-table) div.dt-layout-cell>* {
        margin: 0;
    }
}
/* end datatable */

/* flatpickr */
.flatpickr-months, .flatpickr-weekdays {
  background-color: var(--bs-primary);
}

.flatpickr-day.today {
  border-color: var(--bs-primary) !important;
  background-color: #f2fbe8;
}

.flatpickr-day.endRange,
.flatpickr-day.endRange.inRange,
.flatpickr-day.endRange.nextMonthDay,
.flatpickr-day.endRange.prevMonthDay,
.flatpickr-day.endRange:focus,
.flatpickr-day.endRange:hover,
.flatpickr-day.selected,
.flatpickr-day.selected.inRange,
.flatpickr-day.selected.nextMonthDay,
.flatpickr-day.selected.prevMonthDay,
.flatpickr-day.selected:focus,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.startRange.nextMonthDay,
.flatpickr-day.startRange.prevMonthDay,
.flatpickr-day.startRange:focus,
.flatpickr-day.startRange:hover {
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
}

.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
    -webkit-box-shadow: -10px 0 0 #9cee81;
    box-shadow: -10px 0 0 #9cee81;
}
/* end flatpickr */

/* accordion */
.accordion-button {
  background: #eaeaea;
  font-size: 1rem;
}
/* end accordion */

/* height */
.min-vh-100 {
  min-height: calc(100vh - 17px) !important;
}
@media (min-width: 1200px) {
	.min-vh-100 {
	  min-height: 100vh !important;
	}
}
/* end height */

/* text */
.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

.text-blue {
  color: #038edc !important;
}

.text-sm {
  font-size: 0.75rem;
}
/* end text */

/* background */
.bg-blue-subtle {
  background-color: rgba(3, 142, 220, .1);
}
/* end background */


/* etc */
.nowrap {
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
  overflow: hidden;
}

.w-nowrap {
  white-space: nowrap;
}

.table-ellipsis {
  table-layout: fixed;
  width: 100% !important;
  border-collapse: collapse;
}

.table-ellipsis th,
.table-ellipsis td {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.table-ellipsis th {
  border-right: 1px solid #ddd;
}

.table-ellipsis th:last-child {
  border-right: none;
}

.non-editable{
  background-color: #f5f6f8 !important;
}
/* end etc */

