/* TPS Online - Theme base: tipografi, card, tombol, form, badge, alert, tab */

.tps-theme,
.tps-theme body {
  font-family: var(--tps-font);
}
body.tps-theme {
  font-family: var(--tps-font);
  color: var(--tps-text);
  background: var(--tps-bg);
  -webkit-font-smoothing: antialiased;
}
.tps-theme input,
.tps-theme select,
.tps-theme textarea,
.tps-theme button,
.tps-theme .btn,
.tps-theme .tooltip,
.tps-theme .popover {
  font-family: var(--tps-font);
}
.tps-theme h1, .tps-theme h2, .tps-theme h3, .tps-theme h4, .tps-theme h5, .tps-theme h6,
.tps-theme .h1, .tps-theme .h2, .tps-theme .h3, .tps-theme .h4, .tps-theme .h5, .tps-theme .h6 {
  font-family: var(--tps-font);
  color: var(--tps-text);
}
.tps-theme a {
  color: var(--tps-primary-strong);
}
.tps-theme a:hover,
.tps-theme a:focus {
  color: var(--tps-primary-ink);
}
/* blok teks: app.min.css memaksa teks putih; buat tetap terbaca */
.tps-theme ::selection {
  background: #BFE6F7;
  color: var(--tps-text);
  text-shadow: none;
}
.tps-theme ::-moz-selection {
  background: #BFE6F7;
  color: var(--tps-text);
  text-shadow: none;
}

/* ---------- Card ---------- */
.tps-theme .card {
  background: var(--tps-surface);
  border: 1px solid var(--tps-border);
  border-radius: var(--tps-radius-lg);
  box-shadow: none;
  margin-bottom: 18px;
}
.tps-theme .card.no-border {
  border-color: var(--tps-border);
}
.tps-theme .card > .card-header,
.tps-theme .card-header {
  position: relative;
  padding: 14px 20px 14px 32px;
  border-bottom: 1px solid #E8F0F4;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .02em;
  color: var(--tps-text);
  background: transparent;
  border-radius: var(--tps-radius-lg) var(--tps-radius-lg) 0 0;
}
.tps-theme .card-header::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 50%;
  width: 4px;
  height: 18px;
  margin-top: -9px;
  border-radius: 2px;
  background: var(--tps-yellow);
}
.tps-theme .card-block {
  padding: 16px 20px;
}
.tps-theme .card-block.p-a-0 {
  padding: 0;
}

/* ---------- Tombol ---------- */
.tps-theme .btn {
  border-radius: var(--tps-radius-sm);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .01em;
  box-shadow: none;
  text-shadow: none;
  background-image: none;
}
.tps-theme .btn:focus,
.tps-theme .btn.focus,
.tps-theme .btn:active:focus {
  outline: 2px solid var(--tps-primary);
  outline-offset: 2px;
}
.tps-theme .btn-primary,
.tps-theme .btn-primary:focus,
.tps-theme .btn-primary.focus {
  background-color: var(--tps-primary);
  border-color: var(--tps-primary);
  color: var(--tps-on-primary);
}
.tps-theme .btn-primary:hover,
.tps-theme .btn-primary:active,
.tps-theme .btn-primary.active,
.tps-theme .open > .dropdown-toggle.btn-primary {
  background-color: var(--tps-primary-hover);
  border-color: var(--tps-primary-hover);
  color: var(--tps-on-primary);
}
.tps-theme .btn-primary[disabled],
.tps-theme .btn-primary.disabled,
.tps-theme .btn-primary[disabled]:hover,
.tps-theme .btn-primary.disabled:hover {
  background-color: #E3EDF2;
  border-color: #E3EDF2;
  color: var(--tps-faint);
  opacity: 1;
}
.tps-theme .btn-default {
  background-color: var(--tps-surface);
  border-color: var(--tps-border-2);
  color: var(--tps-text-2);
}
.tps-theme .btn-default:hover,
.tps-theme .btn-default:focus,
.tps-theme .btn-default:active,
.tps-theme .btn-default.active,
.tps-theme .open > .dropdown-toggle.btn-default {
  background-color: var(--tps-primary-softer);
  border-color: var(--tps-primary);
  color: var(--tps-primary-ink);
}
.tps-theme .btn-danger {
  background-color: var(--tps-danger);
  border-color: var(--tps-danger);
  color: #FFFFFF;
}
.tps-theme .btn-danger:hover,
.tps-theme .btn-danger:focus,
.tps-theme .btn-danger:active {
  background-color: var(--tps-danger-hover);
  border-color: var(--tps-danger-hover);
  color: #FFFFFF;
}
.tps-theme .btn-success {
  background-color: var(--tps-success);
  border-color: var(--tps-success);
  color: #FFFFFF;
}
.tps-theme .btn-success:hover,
.tps-theme .btn-success:focus,
.tps-theme .btn-success:active {
  background-color: var(--tps-success-ink);
  border-color: var(--tps-success-ink);
  color: #FFFFFF;
}
.tps-theme .btn-warning {
  background-color: var(--tps-yellow);
  border-color: #E2DB2A;
  color: var(--tps-yellow-ink);
}
.tps-theme .btn-warning:hover,
.tps-theme .btn-warning:focus,
.tps-theme .btn-warning:active {
  background-color: #E9E22C;
  border-color: #D6CF1F;
  color: var(--tps-yellow-ink);
}
.tps-theme .btn-info {
  background-color: var(--tps-primary-soft);
  border-color: #9FD8F0;
  color: var(--tps-primary-ink);
}
.tps-theme .btn-info:hover,
.tps-theme .btn-info:focus,
.tps-theme .btn-info:active {
  background-color: #D2EEF9;
  border-color: var(--tps-primary);
  color: var(--tps-primary-ink);
}
.tps-theme .btn-dark {
  background-color: var(--tps-navy);
  border-color: var(--tps-navy);
  color: #FFFFFF;
}
.tps-theme .btn-info-outline {
  background: var(--tps-surface);
  border: 1px solid var(--tps-primary);
  color: var(--tps-primary-ink);
}
.tps-theme .btn-info-outline:hover {
  background: var(--tps-primary-softer);
  color: var(--tps-primary-ink);
}
.tps-theme .btn-sm {
  border-radius: var(--tps-radius-sm);
}
/* .btn-icon lama: ikon absolute dengan blok abu-abu -> ikon sejajar teks */
.tps-theme .btn-icon,
.tps-theme .btn-sm.btn-icon,
.tps-theme .btn-lg.btn-icon,
.tps-theme .btn-xs.btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding-left: 14px;
  padding-right: 14px;
  border-width: 1px;
  border-style: solid;
}
.tps-theme .btn-icon :first-child,
.tps-theme .btn-icon.btn-sm :first-child,
.tps-theme .btn-icon.btn-lg :first-child,
.tps-theme .btn-icon.btn-xs :first-child {
  position: static;
  width: auto;
  line-height: inherit;
  background: none;
  border: 0;
}

/* ---------- Form ---------- */
.tps-theme .form-control {
  height: 38px;
  border: 1px solid var(--tps-border-2);
  border-radius: var(--tps-radius-sm);
  color: var(--tps-text);
  background-color: var(--tps-surface);
  font-size: 13.5px;
  box-shadow: none;
}
.tps-theme textarea.form-control,
.tps-theme select[multiple].form-control,
.tps-theme select[size].form-control {
  height: auto;
}
.tps-theme .form-control:focus {
  border-color: var(--tps-primary);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(32, 168, 224, .18);
}
.tps-theme .form-control[readonly],
.tps-theme .form-control[disabled],
.tps-theme fieldset[disabled] .form-control {
  background-color: var(--tps-bg);
  color: var(--tps-text-2);
}
.tps-theme .form-control::placeholder {
  color: var(--tps-faint);
}
.tps-theme .input-group-addon {
  border-color: var(--tps-border-2);
  background: var(--tps-bg);
  color: var(--tps-muted);
  border-radius: var(--tps-radius-sm);
}
.tps-theme .input-group .form-control:first-child,
.tps-theme .input-group-addon:first-child {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.tps-theme .input-group .form-control:last-child,
.tps-theme .input-group-addon:last-child {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.tps-theme .control-label-left,
.tps-theme .form-horizontal .control-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .03em;
  color: var(--tps-text-2);
}
.tps-theme .form-horizontal .control-label-left {
  padding-top: 10px;
  margin-bottom: 0;
}
.tps-theme .form-horizontal .form-group {
  margin-bottom: 0;
  padding: 8px 0;
  border-bottom: 1px solid #F0F4F7;
}
.tps-theme .form-horizontal .form-group:last-child {
  border-bottom: 0;
}

/* Form di layar kecil/sedang (<= 991px, area konten sempit karena sidebar): label di atas, field mengalir dalam satu baris bila muat
 * (mis. KODE + NAMA + tombol cari), tombol cari tetap di samping field. Berlaku untuk semua
 * form-horizontal di halaman maupun popup; filter newTable punya tata letak sendiri. */
@media (max-width: 991px) {
  .tps-theme .form-horizontal .form-group:not(.nt-search .form-group) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-left: 0;
    margin-right: 0;
    padding: 10px 0;
  }
  .tps-theme .form-horizontal .form-group:not(.nt-search .form-group)::before,
  .tps-theme .form-horizontal .form-group:not(.nt-search .form-group)::after {
    display: none;
  }
  .tps-theme .form-horizontal .form-group:not(.nt-search .form-group) > label {
    flex: 0 0 100%;
    width: 100%;
    float: none;
    margin: 0;
    padding: 0;
  }
  .tps-theme .form-horizontal .form-group:not(.nt-search .form-group) > [class*="col-"]:not(label) {
    flex: 1 1 160px;
    width: auto;
    min-width: 0;
    float: none;
    padding: 0 !important;
  }
  .tps-theme .form-horizontal .form-group:not(.nt-search .form-group) > :is(.col-sm-1, .col-sm-2, .col-xs-1, .col-xs-2):not(label) {
    flex-basis: 90px;
  }
  .tps-theme .form-horizontal .form-group:not(.nt-search .form-group) > [class*="col-"]:has(> .btn:only-child) {
    flex: 0 0 auto;
  }
}
.tps-theme .has-error .form-control,
.tps-theme .form-control.error {
  border-color: var(--tps-danger);
  background-color: #FFF7F6;
}
.tps-theme .help-block {
  color: var(--tps-subtle);
  font-size: 12px;
}

/* ---------- Badge & label ---------- */
.tps-theme .badge {
  font-family: var(--tps-font);
  font-weight: 800;
  font-size: 11.5px;
  border-radius: 999px;
  padding: 3px 9px;
}
.tps-theme .label {
  font-family: var(--tps-font);
  border-radius: 999px;
  font-weight: 700;
  padding: .3em .75em;
}
.tps-theme .label-success { background: var(--tps-success-bg); color: var(--tps-success-ink); }
.tps-theme .label-danger { background: var(--tps-danger-bg); color: var(--tps-danger-ink); }
.tps-theme .label-warning { background: var(--tps-yellow); color: var(--tps-yellow-ink); }
.tps-theme .label-info,
.tps-theme .label-primary { background: var(--tps-primary-soft); color: var(--tps-primary-ink); }

/* ---------- Alert di halaman ---------- */
.tps-theme .alert {
  position: relative;
  border: 1px solid;
  border-radius: 12px;
  padding: 14px 16px 14px 46px;
  font-size: 13.5px;
  line-height: 1.5;
  box-shadow: none;
  text-shadow: none;
}
.tps-theme .alert::before {
  content: "";
  position: absolute;
  left: 16px;
  top: 15px;
  width: 20px;
  height: 20px;
  background-repeat: no-repeat;
  background-size: 20px 20px;
}
.tps-theme .alert-success {
  background: var(--tps-success-bg);
  border-color: var(--tps-success-bd);
  color: var(--tps-success-ink);
}
.tps-theme .alert-success::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23145C33' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12l3 3 5-6'/%3E%3C/svg%3E");
}
.tps-theme .alert-danger {
  background: var(--tps-danger-bg);
  border-color: var(--tps-danger-bd);
  color: var(--tps-danger-ink);
}
.tps-theme .alert-danger::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A1C0E' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9 9l6 6M15 9l-6 6'/%3E%3C/svg%3E");
}
.tps-theme .alert-warning {
  background: var(--tps-warning-bg);
  border-color: var(--tps-warning-bd);
  color: var(--tps-warning-ink);
}
.tps-theme .alert-warning::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234D4800' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l10 18H2z'/%3E%3Cpath d='M12 10v5M12 18h.01'/%3E%3C/svg%3E");
}
.tps-theme .alert-info {
  background: var(--tps-info-bg);
  border-color: var(--tps-info-bd);
  color: var(--tps-info-ink);
}
.tps-theme .alert-info::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23075E87' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v6M12 7h.01'/%3E%3C/svg%3E");
}
.tps-theme .alert .close {
  opacity: .6;
  text-shadow: none;
}

/* ---------- Tabel bootstrap ---------- */
.tps-theme .table > thead > tr > th {
  background: var(--tps-bg);
  color: var(--tps-text-2);
  font-weight: 700;
  font-size: 12.5px;
  border-bottom: 1px solid #E8F0F4;
}
.tps-theme .table > tbody > tr > td,
.tps-theme .table > tbody > tr > th {
  border-top: 1px solid var(--tps-line);
}

/* ---------- Dropdown ---------- */
.tps-theme .dropdown-menu {
  border: 1px solid #DCE7ED;
  border-radius: 12px;
  box-shadow: var(--tps-shadow);
  padding: 6px;
}
.tps-theme .dropdown-menu > li > a {
  border-radius: 8px;
  padding: 8px 12px;
  color: var(--tps-text-2);
  font-weight: 600;
}
.tps-theme .dropdown-menu > li > a:hover,
.tps-theme .dropdown-menu > li > a:focus {
  background: var(--tps-primary-softer);
  color: var(--tps-primary-ink);
}

/* ---------- Tab (wizard-tabs & nav-tabs) ---------- */
.tps-theme .box-tab {
  margin-bottom: 0;
}
.tps-theme .box-tab .wizard-tabs {
  display: flex;
  align-items: center;
  width: 100%;
  background: var(--tps-surface);
  border-bottom: 1px solid #E8F0F4;
  padding: 0 14px 0 10px;
  border-radius: var(--tps-radius-lg) var(--tps-radius-lg) 0 0;
}
.tps-theme .box-tab .wizard-tabs li {
  display: block;
  flex: 0 0 auto;
}
.tps-theme .box-tab .wizard-tabs li[style*="width:100%"],
.tps-theme .box-tab .wizard-tabs li[style*="width: 100%"] {
  flex: 1 1 auto;
  width: auto !important;
}
.tps-theme .box-tab .wizard-tabs a {
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: 0 16px;
  background: transparent;
  border-bottom: 3px solid transparent;
  color: var(--tps-muted);
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: .02em;
  text-decoration: none;
}
.tps-theme .box-tab .wizard-tabs a::before,
.tps-theme .box-tab .wizard-tabs a::after {
  display: none !important;
}
.tps-theme .box-tab .wizard-tabs a:hover {
  background: transparent;
  color: var(--tps-primary-ink);
}
.tps-theme .box-tab .wizard-tabs li.active a {
  background: transparent;
  border-bottom-color: var(--tps-primary);
  color: var(--tps-primary-ink);
  font-weight: 800;
}
/* li pengisi berisi tombol Save: rata kanan, tanpa garis bawah */
.tps-theme .box-tab .wizard-tabs li[style*="width"] a {
  justify-content: flex-end;
  border-bottom-color: transparent;
  cursor: default;
  padding-right: 0;
}
/* Layar kecil/sedang: deretan tab bisa digeser, tombol (Save) di li pengisi tetap menempel di kanan */
@media (max-width: 991px) {
  .tps-theme .box-tab .wizard-tabs {
    padding: 0 0 0 4px;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
  }
  .tps-theme .box-tab .wizard-tabs::-webkit-scrollbar {
    display: none;
  }
  .tps-theme .box-tab .wizard-tabs li:not([style*="width"]) {
    width: auto;
  }
  .tps-theme .box-tab .wizard-tabs a {
    min-height: 48px;
    padding: 0 12px;
    font-size: 12.5px;
    white-space: nowrap;
  }
  .tps-theme .box-tab .wizard-tabs li[style*="width:100%"],
  .tps-theme .box-tab .wizard-tabs li[style*="width: 100%"] {
    position: sticky;
    right: 0;
    flex: 1 0 auto;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0), var(--tps-surface) 14px);
  }
  .tps-theme .box-tab .wizard-tabs li[style*="width"] a {
    padding: 0 10px 0 18px;
  }
}
.tps-theme .box-tab .tab-content {
  background: var(--tps-surface);
  border-radius: 0 0 var(--tps-radius-lg) var(--tps-radius-lg);
}
.tps-theme .nav-tabs {
  border-bottom: 1px solid #E8F0F4;
}
.tps-theme .nav-tabs > li > a {
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  color: var(--tps-muted);
  font-weight: 600;
}
.tps-theme .nav-tabs > li.active > a,
.tps-theme .nav-tabs > li.active > a:hover,
.tps-theme .nav-tabs > li.active > a:focus {
  border: 0;
  border-bottom: 3px solid var(--tps-primary);
  color: var(--tps-primary-ink);
  background: transparent;
  font-weight: 800;
}

/* ---------- Breadcrumb ---------- */
.tps-theme .breadcrumb {
  background: transparent;
  margin: 0;
  padding: 0 !important;
  font-size: 13px;
}
.tps-theme .breadcrumb > li {
  color: var(--tps-subtle);
}
.tps-theme .breadcrumb > li > a {
  color: var(--tps-subtle);
  font-weight: 500;
}
.tps-theme .breadcrumb > li > a:hover {
  color: var(--tps-primary-ink);
}
.tps-theme .breadcrumb > li.active {
  color: var(--tps-text);
  font-weight: 700;
}
.tps-theme .breadcrumb > li + li::before {
  content: "\203A";
  font-family: var(--tps-font);
  padding: 0 8px;
  color: var(--tps-faint);
}

/* ---------- Pagination bootstrap ---------- */
.tps-theme .pagination > li > a,
.tps-theme .pagination > li > span {
  border-color: var(--tps-border-2);
  color: var(--tps-text-2);
}
.tps-theme .pagination > .active > a,
.tps-theme .pagination > .active > span {
  background: var(--tps-primary);
  border-color: var(--tps-primary);
  color: var(--tps-on-primary);
}

/* ---------- Select (semua select satu baris, termasuk yang tanpa .form-control) ---------- */
.tps-theme select:not([multiple]):not([size]) {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  min-height: 32px;
  padding: 0 32px 0 12px;
  border: 1px solid var(--tps-border-2);
  border-radius: var(--tps-radius-sm);
  background: var(--tps-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234B6474' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center / 14px 14px;
  color: var(--tps-text);
  font-size: 13.5px;
  line-height: 1.3;
  cursor: pointer;
}
.tps-theme select:not([multiple]):not([size]):focus {
  border-color: var(--tps-primary);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(32, 168, 224, .18);
}
.tps-theme select:not([multiple]):not([size])[disabled] {
  background-color: #F4F8FB;
  color: var(--tps-muted);
  cursor: not-allowed;
}
.tps-theme select:not([multiple]):not([size])::-ms-expand {
  display: none;
}
.tps-theme select option {
  background: var(--tps-surface);
  color: var(--tps-text);
}

/* ---------- Checkbox: kotak putih, saat dicentang biru dengan centang putih ---------- */
.tps-theme input[type="checkbox"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 0 4px 0 0;
  padding: 0;
  border: 1.5px solid #9DB0BC;
  border-radius: 5px;
  background: var(--tps-surface) no-repeat center / 12px 12px;
  vertical-align: -4px;
  cursor: pointer;
  transition: background-color .12s ease, border-color .12s ease;
}
.tps-theme input[type="checkbox"]:hover {
  border-color: var(--tps-primary);
}
.tps-theme input[type="checkbox"]:checked {
  border-color: var(--tps-primary);
  background-color: var(--tps-primary);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
.tps-theme input[type="checkbox"]:indeterminate {
  border-color: var(--tps-primary);
  background-color: var(--tps-primary);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='3.6' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E");
}
.tps-theme input[type="checkbox"]:focus {
  outline: 0;
}
.tps-theme input[type="checkbox"]:focus-visible {
  box-shadow: 0 0 0 3px rgba(32, 168, 224, .25);
}
.tps-theme input[type="checkbox"]:disabled {
  opacity: .5;
  cursor: not-allowed;
}

/* ---------- Tombol cari di samping field (kolom berisi satu .btn) setinggi input ---------- */
.tps-theme .form-horizontal .form-group > [class*="col-"]:not(label):has(> .btn:only-child) {
  padding-top: 0 !important;
}
.tps-theme .form-horizontal .form-group > [class*="col-"]:not(label) > .btn-sm:only-child {
  width: 38px;
  min-width: 38px;
  height: 38px;
  margin: 0;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--tps-radius-sm);
  font-size: 15px;
  line-height: 1;
}

/* ---------- Radio: lingkaran putih, saat dipilih biru dengan titik putih ---------- */
.tps-theme input[type="radio"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 0 4px 0 0;
  padding: 0;
  border: 1.5px solid #9DB0BC;
  border-radius: 999px;
  background: var(--tps-surface);
  vertical-align: -4px;
  cursor: pointer;
  transition: background-color .12s ease, border-color .12s ease;
}
.tps-theme input[type="radio"]:hover {
  border-color: var(--tps-primary);
}
.tps-theme input[type="radio"]:checked {
  border-color: var(--tps-primary);
  background: radial-gradient(circle, var(--tps-surface) 0 28%, var(--tps-primary) 31%);
}
.tps-theme input[type="radio"]:focus {
  outline: 0;
}
.tps-theme input[type="radio"]:focus-visible {
  box-shadow: 0 0 0 3px rgba(32, 168, 224, .25);
}
.tps-theme input[type="radio"]:disabled {
  opacity: .5;
  cursor: not-allowed;
}
/* radio/checkbox bootstrap (.radio, .checkbox, *-inline): posisi tidak lagi absolute */
.tps-theme .radio input[type="radio"],
.tps-theme .radio-inline input[type="radio"],
.tps-theme .checkbox input[type="checkbox"],
.tps-theme .checkbox-inline input[type="checkbox"] {
  position: relative;
  margin: 0 6px 0 0;
}
.tps-theme .radio label,
.tps-theme .checkbox label,
.tps-theme .radio-inline,
.tps-theme .checkbox-inline {
  padding-left: 0;
}

/* label berisi radio/checkbox di dalam form (mis. KATEGORI PENYIMPANAN di barang_ob) */
.tps-theme .form-group [class*="col-"] > label:has(> input[type="radio"]),
.tps-theme .form-group [class*="col-"] > label:has(> input[type="checkbox"]) {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  margin: 0 22px 0 0;
  padding: 0;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--tps-text);
  cursor: pointer;
  vertical-align: middle;
}
.tps-theme .form-group [class*="col-"] > label > input[type="radio"],
.tps-theme .form-group [class*="col-"] > label > input[type="checkbox"] {
  margin: 0;
  vertical-align: 0;
}
.tps-theme .form-group [class*="col-"]:has(> label > input[type="radio"]) {
  margin-top: 0 !important;
}
