/* ==========================================================================
   VENDORS — DataTables, Select2, Flatpickr, SweetAlert2, Toastr, jquery-confirm,
   ApexCharts, bs-stepper skinned to tokens.
   ========================================================================== */

/* ---------- DataTables ---------- */
.dataTables_wrapper { font-size: 0.8125rem; }
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
  min-height: 32px;
  border: 1px solid var(--rz-border-default);
  border-radius: var(--rz-radius);
  font-size: 0.8125rem;
  background-color: var(--rz-surface-raised);
}
.dataTables_wrapper .dataTables_filter input:focus { border-color: var(--rz-primary-500); box-shadow: var(--rz-focus-ring); }
.dataTables_wrapper .dataTables_info { font-size: 0.75rem; color: var(--rz-text-tertiary); padding-top: 0.875rem; }
.dataTables_wrapper .dataTables_paginate { padding-top: 0.625rem; }
table.dataTable thead > tr > th.sorting::before,
table.dataTable thead > tr > th.sorting::after,
table.dataTable thead > tr > th.sorting_asc::before,
table.dataTable thead > tr > th.sorting_desc::after { color: var(--rz-text-tertiary); }
table.dataTable thead > tr > th.sorting_asc,
table.dataTable thead > tr > th.sorting_desc { color: var(--rz-text-primary) !important; }
table.dataTable > tbody > tr.selected > * { box-shadow: inset 0 0 0 9999px var(--rz-primary-50) !important; color: var(--rz-text-primary) !important; }
div.dataTables_processing > div:last-child > div { background: var(--rz-primary) !important; }
.dt-buttons .btn { box-shadow: none !important; }

/* ---------- Select2 ---------- */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  min-height: var(--rz-control-height);
  border: 1px solid var(--rz-border-default) !important;
  border-radius: var(--rz-radius) !important;
  background: var(--rz-surface-raised);
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: calc(var(--rz-control-height) - 2px);
  color: var(--rz-text-primary);
  font-size: 0.875rem;
  padding-inline-start: 0.625rem;
}
.select2-container--default .select2-selection--single .select2-selection__arrow { height: calc(var(--rz-control-height) - 2px); }
.select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--rz-text-placeholder); }
.select2-container--default.select2-container--focus .select2-selection,
.select2-container--default.select2-container--open .select2-selection {
  border-color: var(--rz-primary-500) !important;
  box-shadow: var(--rz-focus-ring);
}
.select2-dropdown {
  border: 1px solid var(--rz-border-subtle) !important;
  border-radius: var(--rz-radius) !important;
  box-shadow: var(--rz-shadow-lg);
  overflow: hidden;
}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
  background: var(--rz-primary-50) !important;
  color: var(--rz-primary-700) !important;
}
.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option--selected { background: var(--rz-primary-600) !important; color: #fff !important; }
.select2-container--default .select2-selection--multiple .select2-selection__choice {
  background: var(--rz-primary-50) !important;
  color: var(--rz-primary-700) !important;
  border: 1px solid var(--rz-primary-200) !important;
  border-radius: var(--rz-radius) !important;
  font-size: 0.75rem;
  font-weight: 600;
}
.select2-search__field { font-family: var(--rz-font-sans); }

/* ---------- Flatpickr ---------- */
.flatpickr-calendar {
  border: 1px solid var(--rz-border-subtle) !important;
  border-radius: var(--rz-radius) !important;
  box-shadow: var(--rz-shadow-lg) !important;
  font-family: var(--rz-font-sans);
}
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected:hover {
  background: var(--rz-primary-600) !important;
  border-color: var(--rz-primary-600) !important;
  color: #fff !important;
  box-shadow: none !important;
}
.flatpickr-day.inRange { background: var(--rz-primary-50) !important; border-color: var(--rz-primary-50) !important; box-shadow: none !important; }
.flatpickr-day.today { border-color: var(--rz-primary-400) !important; }
.flatpickr-day { border-radius: var(--rz-radius) !important; }

/* ---------- SweetAlert2 ---------- */
.swal2-popup {
  border-radius: var(--rz-radius) !important;
  font-family: var(--rz-font-sans) !important;
  padding: 1.5rem 1.25rem 1.25rem !important;
  box-shadow: var(--rz-shadow-xl) !important;
}
.swal2-title { font-size: 1.125rem !important; color: var(--rz-text-primary) !important; font-weight: 700 !important; }
.swal2-html-container { font-size: 0.8125rem !important; color: var(--rz-text-secondary) !important; }
.swal2-styled.swal2-confirm { background: linear-gradient(180deg, var(--rz-primary-500), var(--rz-primary-700)) !important; border-radius: var(--rz-radius) !important; box-shadow: var(--rz-glow-primary) !important; font-weight: 600 !important; font-size: 0.8125rem !important; }
.swal2-styled.swal2-cancel { background: var(--rz-surface-raised) !important; color: var(--rz-text-primary) !important; border: 1px solid var(--rz-border-default) !important; border-radius: var(--rz-radius) !important; font-weight: 600 !important; font-size: 0.8125rem !important; }
.swal2-styled.swal2-deny { background: linear-gradient(180deg, var(--rz-danger-500), var(--rz-danger-700)) !important; border-radius: var(--rz-radius) !important; }
html.rz-app .swal2-styled.swal2-confirm,
html.rz-app .swal2-styled.swal2-cancel,
html.rz-app .swal2-styled.swal2-deny { padding: 0.35rem 0.75rem !important; font-size: 0.75rem !important; }
.swal2-icon.swal2-success { border-color: var(--rz-success-600) !important; color: var(--rz-success-600) !important; }
.swal2-icon.swal2-success [class^="swal2-success-line"] { background-color: var(--rz-success-600) !important; }
.swal2-icon.swal2-success .swal2-success-ring { border-color: rgba(22, 129, 77, 0.3) !important; }
.swal2-icon.swal2-warning { border-color: var(--rz-warning-500) !important; color: var(--rz-warning-600) !important; }
.swal2-icon.swal2-error { border-color: var(--rz-danger-500) !important; }
.swal2-icon.swal2-error [class^="swal2-x-mark-line"] { background-color: var(--rz-danger-600) !important; }

/* ---------- jquery-confirm ---------- */
.jconfirm .jconfirm-box { border-radius: var(--rz-radius) !important; font-family: var(--rz-font-sans); box-shadow: var(--rz-shadow-xl) !important; }
.jconfirm .jconfirm-box .jconfirm-buttons button { border-radius: var(--rz-radius) !important; font-weight: 600; text-transform: none !important; }
html.rz-app .jconfirm .jconfirm-box .jconfirm-buttons button { padding: 0.35rem 0.75rem; font-size: 0.75rem; }
.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue,
.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green { background: var(--rz-primary-600) !important; }

/* ---------- Toastr ---------- */
#toast-container > div {
  border-radius: var(--rz-radius) !important;
  box-shadow: var(--rz-shadow-lg) !important;
  opacity: 1 !important;
  font-family: var(--rz-font-sans);
  font-size: 0.8125rem;
}
#toast-container > .toast-success { background-color: var(--rz-success-600) !important; }
#toast-container > .toast-error { background-color: var(--rz-danger-600) !important; }
#toast-container > .toast-warning { background-color: var(--rz-warning-700) !important; } /* white text AA */
#toast-container > .toast-info { background-color: var(--rz-info-600) !important; }

/* ---------- ApexCharts ---------- */
.apexcharts-canvas { font-family: var(--rz-font-sans) !important; }
.apexcharts-text { font-family: var(--rz-font-sans) !important; }
.apexcharts-xaxis text,
.apexcharts-yaxis text { fill: var(--rz-text-tertiary); }
.apexcharts-gridline { stroke: var(--rz-border-subtle); }
.apexcharts-tooltip.apexcharts-theme-light {
  background: var(--rz-surface-raised) !important;
  border: 1px solid var(--rz-border-subtle) !important;
  box-shadow: var(--rz-shadow-md) !important;
  border-radius: var(--rz-radius) !important;
  color: var(--rz-text-primary);
}
.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {
  background: var(--rz-surface-sunken) !important;
  border-bottom-color: var(--rz-border-subtle) !important;
  font-family: var(--rz-font-sans) !important;
}
.apexcharts-legend-text { color: var(--rz-text-secondary) !important; font-family: var(--rz-font-sans) !important; }

/* ---------- bs-stepper ---------- */
.bs-stepper .step.active .bs-stepper-circle,
.bs-stepper .step.crossed .bs-stepper-circle { background-color: var(--rz-primary-600) !important; color: #fff !important; box-shadow: none; }
.bs-stepper .step.active .bs-stepper-title { color: var(--rz-primary-700); }
.bs-stepper { border-radius: var(--rz-radius); box-shadow: var(--rz-shadow-sm); }
