body {
      font-feature-settings: "cv03", "cv04", "cv11";
      padding-bottom: calc(60px + env(safe-area-inset-bottom));
      font-family: 'Titillium Web', 'Fredoka';
    }

    label {
      font-weight: bold;
    }

    .lengkap {
      background-color: #ffee8f;
      text-align: center;
    }

    .sukses {
      background-color: #8fff94;
      text-align: center;
    }

    .koreksi {
      background-color: #f5c682;
      text-align: center;
    }

    .jdl {
      font-size: 14px;
      font-weight: bold;
    }

    .bg-orange {
      background-color: #ddab24;
    }

    .bg-koneng {
      background-color: #fff952;
    }

    .card-title {
      font-weight: bold !important;
      text-transform: uppercase;
    }

    .ro {
      background-color: #bfbfbf;
    }

    .timeline {
      display: flex;
      flex-direction: column;
      gap: 1rem;
      position: relative;
    }

    .timeline-item {
      display: flex;
      align-items: flex-start;
      gap: 1rem;
    }

    .timeline-item .circle {
      width: 20px;
      height: 20px;
      border-radius: 50%;
      border: 2px solid #0d6efd;
      background: #fff;
    }

    .timeline-item.active .circle {
      background: #0d6efd;
    }

    .timeline-item .content {
      flex: 1;
    }

    hr {
      margin: 5px 0;
      /* atas-bawah 5px, kiri-kanan 0 */
      border: none;
      /* hilangkan border default */
      border-top: 1px solid #000;
      /* bikin garis tipis */
    }

    .ui-datepicker {
      font-size: 14px;
      padding: 8px;
      border-radius: 8px;
      border: 1px solid #ddd;
      background: #fff;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    }

    .ui-datepicker td a {
      display: block;
      padding: 6px;
      text-align: center;
      border-radius: 4px;
      transition: background 0.3s;
    }

    .ui-datepicker td a:hover {
      background: #4f46e5;
      color: #fff;
    }

    .ui-datepicker-header {
      background: #f9f9f9;
      border-bottom: 1px solid #ddd;
      padding: 6px;
      font-weight: bold;
      border-radius: 6px 6px 0 0;
    }

    .ui-datepicker-title {
      font-size: 15px;
      text-align: center;
    }

    .ui-datepicker-prev,
    .ui-datepicker-next {
      cursor: pointer;
      font-weight: bold;
    }

    #cameraWrapper,
    #previewWrapper {
      display: none;
      margin-top: 0px;
    }

    #preview {
      width: 350px;
      border: 2px solid #ccc;
      border-radius: 8px;
    }

    #cameraWrapper2,
    #previewWrapper2 {
      display: none;
      margin-top: 0px;
    }

    #camerapup,
    #camera1,
    #camera2,
    #camera3 {
      width: 100%;
      max-width: 380px;
      height: auto;
      aspect-ratio: 9/16;
      object-fit: cover;
      border-radius: 12px;
    }

    .preview-ppu,
    .preview-mentah,
    .preview-proses,
    #previewpup,
    #preview1,
    #preview2,
    #preview3,
    #previewppu {
      width: 100%;
      max-width: 380px;
      height: 600px;
      aspect-ratio: 9/16;
      object-fit: cover;
      border-radius: 12px;
    }

    button {
      margin: 5px;
      padding: 10px 15px;
      border: none;
      border-radius: 6px;
      background: #007bff;
      color: white;
      cursor: pointer;
    }

    button:hover {
      background: #0056b3;
    }

    @media (orientation: landscape) {
      #camera {
        width: 100vw;
        height: auto;
      }

      #camera2 {
        width: 100vw;
        height: auto;
      }
    }

    table {
      font-size: 11px;
    }

    .dt-empty {
      text-align: center;
    }

    .img-icon {
      border-radius: 5px;
    }

    .modal-backdrop {
      z-index: 1040 !important;
    }

    .modal {
      z-index: 2050 !important;
    }

    .info-update {
      float: right;
    }

    .judul {
      font-size: 14px;
      font-weight: bold;
      margin-bottom: 10px;
    }

    .small-red {
      font-size: 9px;
      color: red;
    }

    @media (max-width: 768px) {
      .info-update {
        text-align: center !important;
      }

      .dropdown-item {
        font-size: 11px;
      }

      .judul {
        font-size: 12px;
        font-weight: bold;
        margin-bottom: 5px;
      }

      .navbar-brand-image {
        display: none;
      }
    }

    .modal {
      z-index: 200000 !important;
    }

    .modal-backdrop {
      z-index: 199999 !important;
    }

    #modalCrop .modal-body {
      display: flex;
      justify-content: center;
      /* center horizontal */
      align-items: center;
      /* center vertical (opsional kalau modal tinggi) */
      background: #fff;
      overflow: hidden;
    }

    #modalCrop img {
      max-width: 100%;
      /* isi penuh modal */
      height: auto;
      display: block;
    }

    .flatpickr-calendar {
      z-index: 999999 !important;
    }

    .ui-datepicker {
      z-index: 999999 !important;
    }

    #modalCrop1 .modal-dialog {
      max-width: 90% !important;
      /* modal lebih lebar */
    }

    #modalCrop1 .modal-body {
      max-height: 80vh;
      overflow: hidden !important;
      /* cegah cropper keluar */
      display: flex;
      justify-content: center;
      align-items: center;
    }

    #imageCrop1 {
      max-width: 100%;
      max-height: 70vh;
    }

    #modalCrop2 .modal-dialog {
      max-width: 80% !important;
      /* modal lebih lebar */
    }

    #modalCrop2 .modal-body {
      max-height: 80vh;
      overflow: hidden !important;
      /* cegah cropper keluar */
      display: flex;
      justify-content: center;
      align-items: center;
    }

    #imageCrop3 {
      max-width: 100%;
      max-height: 70vh;
    }

    #modalCrop3 .modal-dialog {
      max-width: 80% !important;
      /* modal lebih lebar */
    }

    #modalCrop3 .modal-body {
      max-height: 80vh;
      overflow: hidden !important;
      /* cegah cropper keluar */
      display: flex;
      justify-content: center;
      align-items: center;
    }

    #imageCrop2 {
      max-width: 100%;
      max-height: 70vh;
    }

    #imageCropppu .modal-dialog {
      max-width: 90% !important;
      /* modal lebih lebar */
    }

    #imageCropppu .modal-body {
      max-height: 80vh;
      overflow: hidden !important;
      /* cegah cropper keluar */
      display: flex;
      justify-content: center;
      align-items: center;
    }

    #imageCropppu {
      max-width: 100%;
      max-height: 70vh;
    }

    .crop-container-ktp {
      max-width: 100%;
      /* penuh modal */
      max-height: 70vh;
      /* agar tidak terlalu tinggi */
      overflow: hidden;
      /* agar tidak melebar keluar */
      margin: 0 auto;
    }

    #imageCropktp {
      max-width: 100%;
      width: 100%;
      height: auto;
    }

    .crop-container-ppu {
      max-width: 100%;
      /* penuh modal */
      max-height: 70vh;
      /* agar tidak terlalu tinggi */
      overflow: hidden;
      /* agar tidak melebar keluar */
      margin: 0 auto;
    }

    #imageCropppu {
      max-width: 100%;
      width: 100%;
      height: auto;
    }

    .btn-equal {
      padding: 8px 18px !important;
    }

    .handphone {
      display: block;
    }

    .laptop {
      display: none;
    }

    .text-grafik {
      font-size: 24px;
    }

    .text-judul {
      font-size: 14px;
    }

    @media (max-width: 576px) {
      .btn {
        font-size: 12px;
        padding: 6px 10px;
      }

      .handphone {
        display: none;
      }

      .laptop {
        display: block;
      }

      .text-grafik {
        font-size: 12px;
        font-weight: bold;
        text-align: center;
      }

      .text-judul {
        font-size: 10px;
        font-weight: bold;
      }
    }

    main {
      padding: 20px;
    }

    /* Bottom Menu (default hidden) */
    .bottom-menu,
    .ho-menu {
      display: none;
      /* sembunyikan secara default */
    }

    .mobile-toolbar {
      display: none;
    }

    .menu-grid {
      display: none;
      /* default sembunyi di desktop */
      gap: 10px;
    }

    /* Tampilkan menu hanya untuk layar kecil (HP) */
    @media (max-width: 768px) {
      .bottom-menu {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 60px;
        padding-bottom: env(safe-area-inset-bottom);
        /* penting untuk iPhone dengan notch & Android gesture bar */
        background-color: #fff;
        border-top: 1px solid #ccc;
        display: flex;
        justify-content: space-around;
        align-items: center;
        box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1);
        z-index: 1000;
      }

      .bottom-menu a {
        text-decoration: none;
        color: #333;
        font-size: 10px;
        display: flex;
        flex-direction: column;
        align-items: center;
        transition: color 0.2s;
      }

      .bottom-menu a:hover {
        color: #007BFF;
      }

      .bottom-menu a span.icon {
        font-size: 20px;
        margin-bottom: 4px;
      }

      .menu-grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        /* 4 kotak per baris */
        gap: 8px;
      }

      .menu-item {
        background-color: #f3f3f3;
        border-radius: 8px;
        padding: 10px;
        text-align: center;
        font-size: 0.5rem;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        transition: background-color 0.2s;
      }

      .menu-item:hover {
        background-color: #007BFF;
        color: #fff;
        cursor: pointer;
      }

      .menu-item span.icon {
        font-size: 20px;
        margin-bottom: 4px;
      }

      .navbar-brand {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
      }

      .navbar-brand img {
        width: 90px;
        /* ukuran lebih kecil untuk HP */
        height: auto;
      }

      .navbar-brand-image {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
      }

      .mobile-toolbar {
        display: flex !important;
        /* pakai flex agar layout tetap jalan */
        flex-wrap: nowrap;
        justify-content: flex-end;
        align-items: center;
        margin: 0.25rem 0;
        /* sesuaikan jarak */
        float: none;
        /* hilangkan float agar flex bekerja dengan baik di mobile */
      }

      /* Styling tombol */
      .mobile-toolbar button,
      .mobile-toolbar form button {
        background-color: #f3f3f3;
        padding: 0.2rem 0.5rem;
        border-radius: 4px;
        border: none;
        margin-left: 4px;
        font-size: 0.9rem;
      }

      .mobile-toolbar small {
        font-size: 0.8rem;
        color: #0dcaf0;
        /* text-info */
        margin-right: 6px;
      }

      .text-tanggal {
        font-size: 9px;
      }
    }

    .pagination .page-item.active .page-link {
      background-color: #0d6efd;
      border-color: #0d6efd;
      color: #fff;
    }

    .pagination .page-link {
      border-radius: 6px;
      margin: 0 3px;
    }