* {
  transition: all 0.3s ease;
}


@keyframes gradientMove {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}



html,body {
	font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; 
	font-family: 'Inter', sans-serif;
	font-weight: 400; font-size: 0.9rem;
	animation: gradientMove 8s ease infinite;
}
.sidebar {
  height: 100vh;
  border-right: 1px solid #dee2e6;
  scrollbar-width: thin;
}

.sidebar-heading {
  font-weight: bold;
  font-size: 1rem;
  margin-top: 1rem;
}

.sidebar {
	scrollbar-width: thin;
}

.sidebar::-webkit-scrollbar { 
	scrollbar-width: thin;
}


.sidebar::-webkit-scrollbar-track
{
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
    background-color: #F5F5F5;
}

.sidebar::-webkit-scrollbar
{
    width: 12px;
    background-color: #F5F5F5;
}

.sidebar::-webkit-scrollbar-thumb
{
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
    background-color: #555;
}

html, body {
    height: 100%;
    margin: 0;
    padding: 0;
}


.sidebar {
    height: 100vh; /* sidebar setinggi layar */
    overflow-y: auto; /* kalau konten sidebar banyak, bisa scroll */
    position: sticky;
    top: 0; /* supaya tetap di atas saat scroll */
    border-right: 1px solid #ddd; /* opsional, biar kelihatan batas */
}


.nav-link {
  color: #000;
}

.nav-link:hover {
  color: green;
}

.table td, .table th {
  vertical-align: middle;
}

@media (max-width: 767.98px) {
  .table td {
    font-size: 0.875rem;
    padding: 0.4rem;
  }

  .table th {
    font-size: 0.85rem;
  }
}

.nav-link.active {
  font-weight: bold;
  color: #0d6efd;
}

/* Collapse effect */
.sidebar.collapsed {
  width: 80px !important;
  overflow-x: hidden;
}

#mainContent.collapsed {
  margin-left: 80px !important;
}

/* Hide text, show icons only */
.sidebar.collapsed .nav-link {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.sidebar.collapsed .accordion-button::after {
  display: none; /* Hide accordion arrow */
}

.sidebar.collapsed .accordion-body {
  display: none;
}

.sidebar.collapsed .accordion-button {
  font-size: 0.9rem;
  text-align: center;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}



/*smooth*/
.navbar a,
.navbar .btn,
.dropdown-menu .dropdown-item,
.sidebar .nav-link,
.accordion-button {
  transition: all 0.3s ease-in-out;
}

/* Hover effects */
.navbar .btn:hover,
.navbar a:hover,
.dropdown-menu .dropdown-item:hover,
.sidebar .nav-link:hover,
.accordion-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  opacity: 0.9;
}

/* Focus effect (for accessibility) */
.navbar .btn:focus,
.sidebar .nav-link:focus,
.dropdown-menu .dropdown-item:focus {
  outline: none;
  box-shadow: 0 0 0 0.15rem rgba(0, 128, 0, 0.25);
}

/* Optional: smooth dropdown animation */
.dropdown-menu {
  transition: opacity 0.2s ease-in-out, transform 0.2s ease;
  transform-origin: top right;
}

.table td, .table th {
  vertical-align: middle;
  word-break: break-word;
}


.dropdown-menu {
  transition: all 0.2s ease;
}

.dropdown-menu .dropdown-item:hover {
  background-color: #f1f1f1;
}

/* Style untuk posisi dropdown submenu */
.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -1px;
  display: none;
  position: absolute;
}

.dropdown-submenu:hover > .dropdown-menu,
.dropdown-submenu:focus-within > .dropdown-menu {
  display: block;
}

/*loading */
/*  loader  */
#loader {
  display: none;
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(255, 255, 255, 0.7);
  z-index: 9999;
}

/* Spinner animasi */
.spinner {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 40px;
  height: 40px;
  border: 8px solid #ccc;
  border-top: 8px solid #3498db; /* Warna putaran */
  border: 6px solid #f3f3f3;
  border-top: 6px solid #28a745;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

/* Keyframe animasi */
@keyframes spin {
  0% { transform: translate(-50%, -50%) rotate(0deg); }
  100% { transform: translate(-50%, -50%) rotate(360deg); }
}


/** scrool responsive */

::-webkit-scrollbar-track
{
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
    background-color: #F5F5F5;
}

::-webkit-scrollbar
{
    width: 12px;
    background-color: #F5F5F5;
}

::-webkit-scrollbar-thumb
{
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
    background-color: #555;
}


html {
	scrollbar-width: thin;
}

html::-webkit-scrollbar { 
	scrollbar-width: thin;
}


html::-webkit-scrollbar-track
{
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
    background-color: #F5F5F5;
}

html::-webkit-scrollbar
{
    width: 12px;
    background-color: #F5F5F5;
}

html::-webkit-scrollbar-thumb
{
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
    background-color: #555;
}


@media (max-width: 990px) {
	.nav_desktop {
		display:none;
	}
	
}


.table-responsive-auto tbody tr td {
	padding:2px;
	margin:0;
}
@media (max-width: 768px) {
  .table-responsive-auto {
    width: 100%;
    min-width:1000px; 
    display: block;
	-webkit-overflow-scrolling: touch;
  }
}

.table-responsive-wrap {
	overflow-x: auto;
}


.switch {
  position: relative;
  display: inline-block;
  width: 43px;
  height: 12px;
}
.switch input { 
  opacity: 0;
  width: 0;
  height: 0;
}
.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
}
.slider:before {
  position: absolute;
  content: "";
  height: 12px;
  width: 12px;
  left: 4px;
  bottom: 0px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
}
input:checked + .slider {
  background-color: green;
}
input:focus + .slider {
  box-shadow: 0 0 1px green;
}
input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}
.slider.round {
  border-radius: 12px;
}
.slider.round:before {
  border-radius: 50%;
}


/*------------- nw*/

table.nowrap th,
table.nowrap td {
    white-space: nowrap;
    vertical-align: middle;
}

.table input {
    min-width: 120px;
}

.table button {
    white-space: nowrap;
}

@media (max-width: 768px) {
    .table th,
    .table td {
        padding: 0.4rem;
        font-size: 12px;
    }
}
table.nowrap th,
table.nowrap td {
    white-space: nowrap;
    vertical-align: middle;
}

.table input {
    min-width: 120px;
}

.table button {
    white-space: nowrap;
}

@media (max-width: 768px) {
    .table th,
    .table td {
        padding: 0.4rem;
        font-size: 12px;
    }
}
.table-responsive::-webkit-scrollbar {
    height: 6px;   /* horizontal */
    width: 6px;    /* vertical */
}

.table-responsive::-webkit-scrollbar-track {
    background: #f1f1f1;
}

.table-responsive::-webkit-scrollbar-thumb {
    background: #bbb;
    border-radius: 10px;
}

.table-responsive::-webkit-scrollbar-thumb:hover {
    background: #888;
}

.table-responsive {
    scrollbar-width: thin;  
    scrollbar-color: #bbb #f1f1f1;
}
.table-responsive::-webkit-scrollbar-thumb {
    background: transparent;
}

.table-responsive:hover::-webkit-scrollbar-thumb {
    background: #bbb;
}
