/* APK UI Stability + Theme 2027
   Fixes blank popup/combobox/date widgets, removes flicker, and adds light/dark theme. */
:root{
  --apk-bg:#eef6ff;
  --apk-surface:#ffffff;
  --apk-surface-2:#f8fbff;
  --apk-text:#0f1f3d;
  --apk-muted:#5f718f;
  --apk-line:#cfe0ff;
  --apk-line-strong:#9ebbf4;
  --apk-primary:#1d4ed8;
  --apk-primary-2:#6d28d9;
  --apk-danger:#dc2626;
  --apk-success:#16a34a;
  --apk-warning:#d97706;
  --apk-shadow:0 18px 48px rgba(30,64,175,.12);
  --apk-focus:0 0 0 4px rgba(37,99,235,.18);
}
html[data-apk-theme="dark"]{
  --apk-bg:#07111f;
  --apk-surface:#0f1b2e;
  --apk-surface-2:#13233b;
  --apk-text:#eef6ff;
  --apk-muted:#b8c7dd;
  --apk-line:#263c5f;
  --apk-line-strong:#3b5f96;
  --apk-primary:#60a5fa;
  --apk-primary-2:#a78bfa;
  --apk-danger:#f87171;
  --apk-success:#4ade80;
  --apk-warning:#fbbf24;
  --apk-shadow:0 18px 54px rgba(0,0,0,.35);
  --apk-focus:0 0 0 4px rgba(96,165,250,.25);
}
html,body{background:var(--apk-bg)!important;color:var(--apk-text)!important;}
#main,.apk-page-content{background:var(--apk-bg)!important;color:var(--apk-text)!important;}
.sidebar-wrapper,.sidebar-header,.apk-topbar,.card,.box,.dataTables_wrapper,.apk-entry-dialog,.modal-content,
.apk-data-toolbar,.apk-filter-panel,.apk-list-toolbar{
  background:var(--apk-surface)!important;
  color:var(--apk-text)!important;
  border-color:var(--apk-line)!important;
}
.apk-topbar,.apk-entry-dialog,.modal-content,.dataTables_wrapper,.apk-data-toolbar,.apk-filter-panel,.apk-list-toolbar{box-shadow:var(--apk-shadow)!important;}

/* Stop old-school blinking/neon effects that made Memo PH names/selects flicker. */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple,
.form-control,select,input,textarea{animation:none!important;transition:border-color .15s ease, box-shadow .15s ease, background .15s ease!important;}
.text,.text::before,.gradient,.spotlight,.neon{filter:none!important;mix-blend-mode:normal!important;animation:none!important;}

/* Strong contrast inputs. */
label,.form-group label,.apk-entry-form label,.apk-field label{
  color:var(--apk-text)!important;
  -webkit-text-fill-color:var(--apk-text)!important;
  font-weight:850!important;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]),
select,textarea,.form-control,.select2-search__field{
  background:var(--apk-surface)!important;
  color:var(--apk-text)!important;
  -webkit-text-fill-color:var(--apk-text)!important;
  border:1.5px solid var(--apk-line-strong)!important;
  border-radius:14px!important;
  min-height:44px!important;
  font-weight:750!important;
  outline:0!important;
}
input:focus,select:focus,textarea:focus,.form-control:focus,.select2-container--focus .select2-selection{
  border-color:var(--apk-primary)!important;
  box-shadow:var(--apk-focus)!important;
}
input::placeholder,textarea::placeholder{color:var(--apk-muted)!important;-webkit-text-fill-color:var(--apk-muted)!important;opacity:1!important;}
select option{background:var(--apk-surface)!important;color:var(--apk-text)!important;-webkit-text-fill-color:var(--apk-text)!important;}

/* Native date fallback always visible. */
input[type="date"],input.tanggal,input.tanggalDepan,input.tanggalBelakang{color-scheme:light!important;}
html[data-apk-theme="dark"] input[type="date"],
html[data-apk-theme="dark"] input.tanggal,
html[data-apk-theme="dark"] input.tanggalDepan,
html[data-apk-theme="dark"] input.tanggalBelakang{color-scheme:dark!important;}
input[type="date"]::-webkit-calendar-picker-indicator{opacity:1!important;filter:none!important;cursor:pointer!important;}
html[data-apk-theme="dark"] input[type="date"]::-webkit-calendar-picker-indicator{filter:invert(1)!important;}

/* Select2 repaired without hidden/blank text. */
.select2-container{width:100%!important;max-width:100%!important;color:var(--apk-text)!important;z-index:auto!important;}
.select2-container .select2-selection,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple{
  background:var(--apk-surface)!important;
  color:var(--apk-text)!important;
  border:1.5px solid var(--apk-line-strong)!important;
  border-radius:14px!important;
  min-height:46px!important;
  height:auto!important;
  overflow:visible!important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--multiple .select2-selection__rendered,
.select2-container--default .select2-selection__choice,
.select2-container--default .select2-selection__choice__display{
  color:var(--apk-text)!important;
  -webkit-text-fill-color:var(--apk-text)!important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:44px!important;padding-left:14px!important;padding-right:42px!important;}
.select2-container--default .select2-selection--single .select2-selection__arrow{height:44px!important;right:6px!important;}
.select2-dropdown,.select2-container--open .select2-dropdown{
  z-index:2147483000!important;
  background:var(--apk-surface)!important;
  color:var(--apk-text)!important;
  border:1px solid var(--apk-line-strong)!important;
  border-radius:14px!important;
  box-shadow:0 24px 64px rgba(0,0,0,.22)!important;
  overflow:hidden!important;
}
.select2-results,.select2-results__options,.select2-results__option,.select2-search,.select2-search__field{
  background:var(--apk-surface)!important;
  color:var(--apk-text)!important;
  -webkit-text-fill-color:var(--apk-text)!important;
}
.select2-results__option{padding:10px 13px!important;font-weight:800!important;min-height:38px!important;}
.select2-results__option--highlighted{background:linear-gradient(135deg,var(--apk-primary),var(--apk-primary-2))!important;color:#fff!important;-webkit-text-fill-color:#fff!important;}
.select2-results__option--selected,.select2-results__option[aria-selected="true"]{background:var(--apk-surface-2)!important;color:var(--apk-primary)!important;}
.select2-hidden-accessible{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;}

/* Modal/popup visibility: no blank white overlay. */
.modal,.apk-entry-modal{color:var(--apk-text)!important;-webkit-text-fill-color:var(--apk-text)!important;}
.apk-entry-modal{z-index:2147482000!important;}
.apk-entry-modal.is-open{display:flex!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;}
.apk-entry-backdrop{background:rgba(15,23,42,.48)!important;z-index:0!important;}
.apk-entry-dialog,.modal-dialog{z-index:1!important;}
.apk-entry-dialog,.modal-content,.modal-header,.modal-body,.modal-footer,.apk-entry-form{
  background:var(--apk-surface)!important;
  color:var(--apk-text)!important;
  -webkit-text-fill-color:var(--apk-text)!important;
  overflow:visible!important;
}
.apk-entry-dialog{overflow:auto!important;}
.modal-backdrop{z-index:2147481000!important;}
.modal{z-index:2147481500!important;}
body.modal-open .select2-container--open,html.apk-modal-open .select2-container--open{z-index:2147483000!important;}

/* Zebra datepicker, when loaded. */
.Zebra_DatePicker,.Zebra_DatePicker *{
  background:var(--apk-surface)!important;
  color:var(--apk-text)!important;
  -webkit-text-fill-color:var(--apk-text)!important;
  box-sizing:border-box!important;
  animation:none!important;
}
.Zebra_DatePicker{z-index:2147483000!important;border:1px solid var(--apk-line-strong)!important;border-radius:16px!important;box-shadow:0 24px 64px rgba(0,0,0,.24)!important;padding:10px!important;}
.Zebra_DatePicker td,.Zebra_DatePicker th{color:var(--apk-text)!important;text-align:center!important;font-weight:850!important;}
.Zebra_DatePicker .dp_selected,.Zebra_DatePicker .dp_current{background:linear-gradient(135deg,var(--apk-primary),var(--apk-primary-2))!important;color:#fff!important;-webkit-text-fill-color:#fff!important;}
.Zebra_DatePicker button,.Zebra_DatePicker .dp_previous,.Zebra_DatePicker .dp_next,.Zebra_DatePicker .dp_caption{
  position:relative!important;inset:auto!important;background:var(--apk-surface-2)!important;color:var(--apk-text)!important;border:0!important;box-shadow:none!important;min-width:0!important;width:auto!important;height:auto!important;margin:0!important;
}
.Zebra_DatePicker button::before,.Zebra_DatePicker button::after{display:none!important;content:none!important;}

/* Contrast buttons. */
button,.btn,input[type="button"],input[type="submit"],.button,.apk-primary-action,.apk-entry-open,.apk-top-action{
  position:relative!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:linear-gradient(135deg,#1d4ed8,#6d28d9)!important;
  border:0!important;
  border-radius:14px!important;
  box-shadow:0 12px 28px rgba(37,99,235,.24)!important;
  font-weight:900!important;
  min-height:42px!important;
}
button::before,button::after{display:none!important;content:none!important;}
.btn-danger,.delete,input[value="Delete"],button.delete{background:linear-gradient(135deg,#dc2626,#ef4444)!important;color:#fff!important;}
.btn-success,.approve,input[value="Approve"],button.approve{background:linear-gradient(135deg,#15803d,#22c55e)!important;color:#fff!important;}
.apk-secondary-action,.apk-flow-open,.btn-light,.btn-outline-primary{
  background:var(--apk-surface)!important;
  color:var(--apk-primary)!important;
  -webkit-text-fill-color:var(--apk-primary)!important;
  border:1.5px solid var(--apk-line-strong)!important;
  box-shadow:none!important;
}

/* Manual theme switch. */
.apk-theme-toggle{
  display:inline-flex!important;align-items:center!important;gap:8px!important;
  min-height:44px!important;padding:0 14px!important;border-radius:14px!important;
  color:var(--apk-text)!important;-webkit-text-fill-color:var(--apk-text)!important;
  background:var(--apk-surface)!important;border:1.5px solid var(--apk-line-strong)!important;
  box-shadow:none!important;font-weight:900!important;white-space:nowrap!important;cursor:pointer!important;
}
.apk-theme-toggle i{color:var(--apk-primary)!important;-webkit-text-fill-color:var(--apk-primary)!important;}

/* Tables in dark mode. */
table,thead,tbody,tr,td,th{color:var(--apk-text)!important;}
html[data-apk-theme="dark"] table,
html[data-apk-theme="dark"] .table,
html[data-apk-theme="dark"] .dataTable{background:var(--apk-surface)!important;}
html[data-apk-theme="dark"] td,html[data-apk-theme="dark"] th{border-color:var(--apk-line)!important;}
html[data-apk-theme="dark"] .dataTables_filter input{background:var(--apk-surface-2)!important;color:var(--apk-text)!important;}

@media(max-width:768px){
  .apk-theme-toggle{width:100%!important;justify-content:center!important;}
  .select2-dropdown,.Zebra_DatePicker{max-width:calc(100vw - 20px)!important;}
  .apk-entry-modal{padding:0!important;}
  .apk-entry-dialog{width:100vw!important;height:100vh!important;max-height:100vh!important;border-radius:0!important;}
}
