.theme--light.v-application {
  background: none;
}

.v-data-table>.v-data-table__wrapper>table>thead>tr>th {
  color: #212121 !important;
  text-transform: uppercase;
  font-weight: 500;
  font-size: 14px;
  padding-top: 10px;
  padding-bottom: 10px;
}

.v-data-table>.v-data-table__wrapper>table>tbody>tr>td {
  font-weight: normal;
  font-size: 14px;
  padding-top: 10px;
  padding-bottom: 10px;
}

/* ===========================================================
   RESPONSIVE HELPERS (mobile-friendly utilities)
   Dipakai di seluruh modul agar layout konsisten di semua device
   =========================================================== */

/* Wrapper untuk tabel lebar agar bisa scroll horizontal di mobile */
.table-responsive {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.table-responsive > table {
  min-width: 100%;
}

/* Cegah konten/gambar memaksa lebar berlebih */
img, video, canvas, svg {
  max-width: 100%;
  height: auto;
}

/* iPad/tablet & mobile breakpoint <= 960px */
@media (max-width: 960px) {
  .v-data-table>.v-data-table__wrapper>table>thead>tr>th,
  .v-data-table>.v-data-table__wrapper>table>tbody>tr>td {
    font-size: 13px;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  /* Stack form actions di mobile */
  .form-actions-mobile {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .form-actions-mobile > * {
    width: 100% !important;
    margin: 4px 0 !important;
  }
}

/* Mobile xs <= 600px */
@media (max-width: 600px) {
  .v-data-table>.v-data-table__wrapper>table>thead>tr>th,
  .v-data-table>.v-data-table__wrapper>table>tbody>tr>td {
    font-size: 12px;
    padding: 6px 4px !important;
  }

  /* Cegah iOS auto-zoom saat focus input (input font harus >= 16px) */
  .v-text-field input,
  .v-select input,
  .v-textarea textarea,
  input[type="text"],
  input[type="number"],
  input[type="email"],
  input[type="password"],
  input[type="search"],
  input[type="tel"],
  input[type="date"],
  textarea {
    font-size: 16px !important;
  }

  /* Touch target minimum 44x44 agar nyaman di-tap (Apple HIG) */
  .v-btn:not(.v-btn--icon):not(.v-btn--fab) {
    min-height: 40px;
  }

  .v-btn--icon {
    min-width: 40px !important;
    min-height: 40px !important;
  }

  /* Headline & title agar tidak terlalu besar di HP */
  h1 { font-size: 1.4rem !important; }
  h2 { font-size: 1.25rem !important; }
  h3 { font-size: 1.1rem !important; }

  /* Card title default sering terlalu besar */
  .v-card__title {
    font-size: 1.05rem !important;
    word-break: break-word;
  }

  /* Padding container utama lebih hemat ruang */
  .container,
  .v-container {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  /* Dialog full-width terasa lebih natural */
  .v-dialog:not(.v-dialog--fullscreen) {
    margin: 12px !important;
  }
}

/* Helper visibility per breakpoint (alias yang lebih ringkas) */
.hide-on-mobile { display: initial; }
.show-on-mobile { display: none; }

@media (max-width: 600px) {
  .hide-on-mobile { display: none !important; }
  .show-on-mobile { display: initial !important; }
}

/* Sticky header untuk tabel laporan yang lebar */
.table-sticky-head thead th {
  position: sticky;
  top: 0;
  background: #fff;
  z-index: 2;
}

/* Anti horizontal overflow di body (defensive) */
html, body {
  overflow-x: hidden;
}

/* Pastikan v-data-table selalu bisa scroll horizontal di mobile */
.v-data-table__wrapper {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}

/* v-card-text default padding terlalu besar di mobile, perketat */
@media (max-width: 600px) {
  .v-card__text {
    padding: 12px !important;
  }
  .v-card__actions {
    flex-wrap: wrap;
  }
  /* Toolbar items overflow protection */
  .v-toolbar__content {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}

p.text-underlined:hover {
  text-decoration: underline;
}

/* width */
::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}

/* Track */
::-webkit-scrollbar-track {
  background: #E0E0E0;
}

/* Handle */
::-webkit-scrollbar-thumb {
  background: rgba(117, 117, 117, 0.7);
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
  background: rgba(117, 117, 117, 1);
}

/*===== All Preloader Style =====*/
.preloader {
  /* Body Overlay */
  position: fixed;
  top: 0;
  left: 0;
  display: table;
  height: 100%;
  width: 100%;
  /* Change Background Color */
  background: white;
  z-index: 99999;
}

.preloader .loader {
  display: table-cell;
  vertical-align: middle;
  text-align: center;
}

.preloader .loader.loader-logo {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 64px;
  margin-left: -32px;
  z-index: 18;
  pointer-events: none;
}

.preloader .loader .spinner {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 92px;
  margin-left: -46px;
  z-index: 18;
  pointer-events: none;
}

.preloader .loader .spinner .spinner-container {
  pointer-events: none;
  position: absolute;
  width: 100%;
  padding-bottom: 100%;
  top: 50%;
  left: 50%;
  margin-top: -50%;
  margin-left: -50%;
  animation: spinner-linspin 1568.2353ms linear infinite;
}

.preloader .loader .spinner .spinner-container .spinner-rotator {
  position: absolute;
  width: 100%;
  height: 100%;
  animation: spinner-easespin 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
}

.preloader .loader .spinner .spinner-container .spinner-rotator .spinner-left {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  overflow: hidden;
  right: 50%;
}

.preloader .loader .spinner .spinner-container .spinner-rotator .spinner-right {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  overflow: hidden;
  left: 50%;
}

.preloader .loader .spinner-circle {
  box-sizing: border-box;
  position: absolute;
  width: 200%;
  height: 100%;
  border-style: solid;
  /* Spinner Color */
  border-color: #009688 #00897B #F4EEFB;
  border-radius: 50%;
  border-width: 6px;
}

.preloader .loader .spinner-left .spinner-circle {
  left: 0;
  right: -100%;
  border-right-color: #F4EEFB;
  animation: spinner-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
}

.preloader .loader .spinner-right .spinner-circle {
  left: -100%;
  right: 0;
  border-left-color: #F4EEFB;
  animation: right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
}



/* Preloader Animations */
@keyframes spinner-linspin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes spinner-easespin {
  12.5% {
    transform: rotate(135deg);
  }

  25% {
    transform: rotate(270deg);
  }

  37.5% {
    transform: rotate(405deg);
  }

  50% {
    transform: rotate(540deg);
  }

  62.5% {
    transform: rotate(675deg);
  }

  75% {
    transform: rotate(810deg);
  }

  87.5% {
    transform: rotate(945deg);
  }

  to {
    transform: rotate(1080deg);
  }
}

@keyframes spinner-left-spin {
  0% {
    transform: rotate(130deg);
  }

  50% {
    transform: rotate(-5deg);
  }

  to {
    transform: rotate(130deg);
  }
}

@keyframes right-spin {
  0% {
    transform: rotate(-130deg);
  }

  50% {
    transform: rotate(5deg);
  }

  to {
    transform: rotate(-130deg);
  }
}