/* BUDI form polish
   - Force single dropdown arrow for Bootstrap .form-select (Windows/Edge safe)
   - Unify label style (label above field)
*/

select.form-select,
.form-select {
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;

  /* Ensure we only render the Bootstrap arrow (not native) */
  background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none) !important;
  background-repeat: no-repeat !important;
  background-position: right 0.75rem center !important;
  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) !important;
}

select.form-select::-ms-expand {
  display: none;
}

.budi-form .form-label,
.form-label {
  font-weight: 600;
}

/* Make all inputs/selects look uniform (match .form-select sizing) */
:root{
  --budi-control-font-size: 0.95rem;
  --budi-control-line-height: 1.5;
  --budi-control-padding-y: 0.5rem;
  --budi-control-padding-x: 0.75rem;
}

.budi-form .form-control,
.budi-form .form-select,
.budi-form textarea.form-control,
.budi-form input.form-control[type="file"]{
  font-size: var(--budi-control-font-size);
  line-height: var(--budi-control-line-height);
  padding: var(--budi-control-padding-y) var(--budi-control-padding-x);
}

/* Ensure consistent height even when template styles vary */
.budi-form .form-control,
.budi-form .form-select{
  min-height: calc((var(--budi-control-font-size) * var(--budi-control-line-height)) + (var(--budi-control-padding-y) * 2) + 2px);
}

/* File input often renders taller/shorter: normalize */
.budi-form input.form-control[type="file"]{
  padding-top: calc(var(--budi-control-padding-y) - 0.1rem);
  padding-bottom: calc(var(--budi-control-padding-y) - 0.1rem);
}

/* Responsive helpers */
.budi-form-actions{
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
}

/* DataTables layout + responsiveness helpers */
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select{
  margin-left: .5rem;
}

/* Tables: cleaner header + tighter, modern look */
.budi-datatable thead th{
  font-weight: 700;
  font-size: .82rem;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: rgba(0,0,0,.75);
  border-bottom: 1px solid rgba(0,0,0,.08) !important;
  white-space: nowrap;
}

.budi-datatable tbody td{
  vertical-align: middle;
}

.budi-datatable.table > :not(caption) > * > *{
  padding-top: .65rem;
  padding-bottom: .65rem;
}

/* DataTables: nicer paginate buttons */
.dataTables_wrapper .dataTables_paginate .paginate_button{
  padding: .25rem .55rem !important;
  margin: 0 .15rem !important;
  border-radius: .45rem !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  background: #fff !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current{
  background: rgba(13,110,253,.12) !important;
  border-color: rgba(13,110,253,.35) !important;
  color: #0d6efd !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover{
  background: rgba(0,0,0,.04) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled{
  opacity: .5;
}

/* DataTables: align length/filter labels nicely */
.dataTables_wrapper .dataTables_length label,
.dataTables_wrapper .dataTables_filter label{
  font-weight: 600;
  color: rgba(0,0,0,.7);
}

/* Allow DataTables controls to wrap nicely on small screens */
.dataTables_wrapper .row{
  --bs-gutter-x: 1rem;
}

.dataTables_wrapper .dataTables_filter{
  text-align: end;
}

@media (max-width: 575.98px){
  .dataTables_wrapper .dataTables_filter{
    text-align: start;
  }
  .dataTables_wrapper .dataTables_filter input{
    width: 100%;
    margin-left: 0;
    margin-top: .25rem;
  }
}

/* Sidebar: keep copyright/footer pinned bottom (BUDI pemohon sidebar) */
.deznav .deznav-scroll{
  height: 100%;
}

.deznav .deznav-scroll.d-flex.flex-column > .copyright{
  margin-top: auto;
}

/* Page header polish */
.welcome-text h4{
  font-weight: 800;
  letter-spacing: .2px;
}
.welcome-text p{
  color: rgba(0,0,0,.55);
}

/* Card polish for admin pages */
.card{
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 6px 18px rgba(0,0,0,.04);
}
.card-header{
  background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(248,249,250,1) 100%);
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.card-title{
  font-weight: 800;
}

/* Sidebar: make .deznav narrower to free content space */
:root{
  --budi-sidebar-width: 17rem;
}

@media (min-width: 992px){
  /* Only when sidebar is not collapsed (menu-toggle) */
  #main-wrapper:not(.menu-toggle) .nav-header{
    width: var(--budi-sidebar-width) !important;
  }
  #main-wrapper:not(.menu-toggle) .deznav{
    width: var(--budi-sidebar-width) !important;
  }
  #main-wrapper:not(.menu-toggle) .header{
    padding-left: var(--budi-sidebar-width) !important;
  }
  #main-wrapper:not(.menu-toggle) .content-body{
    margin-left: var(--budi-sidebar-width) !important;
  }
  #main-wrapper:not(.menu-toggle) .footer{
    padding-left: var(--budi-sidebar-width) !important;
  }
}

@media (max-width: 575.98px){
  /* Stack inline radios/checkboxes nicely on mobile */
  .budi-form .form-check-inline{
    display: block;
    margin-right: 0;
    margin-bottom: .25rem;
  }

  /* Action buttons: full width stacked */
  .budi-form-actions{
    flex-direction: column;
    align-items: stretch;
  }
  .budi-form-actions .btn{
    width: 100%;
  }
}

