/* DROPX GUARANTEED RESPONSIVE V10 */

:root {
  --dx10-sidebar: 258px;
  --dx10-mobilebar: 62px;
  --dx10-gap: 14px;
  --dx10-pad: clamp(14px, 2vw, 28px);
}

html,
body,
#root {
  width: 100%;
  max-width: 100%;
  min-width: 320px;
  min-height: 100%;
  margin: 0;
  overflow-x: hidden !important;
}

html {
  font-size: 16px !important;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  color: #15283d;
  font-size: 14px !important;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.dx10-menu-lock {
  overflow: hidden !important;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

img,
svg,
video,
canvas {
  max-width: 100%;
  height: auto;
}

button,
input,
select,
textarea {
  font: inherit;
}

.dropx-mobile-appbar,
.dropx-mobile-menu-trigger,
.dropx-mobile-menu-close,
.dropx-mobile-menu-overlay,
.dx-v96-mobilebar,
.dx-v96-menu-overlay,
.dx-v96-menu-close {
  display: none !important;
}

.dx10-mobilebar,
.dx10-overlay,
.dx10-close {
  display: none;
}

body.dx10-desktop .erp-shell {
  display: grid !important;
  grid-template-columns:
    var(--dx10-sidebar)
    minmax(0, 1fr) !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 100dvh !important;
  margin: 0 !important;
  transform: none !important;
  zoom: 1 !important;
}

body.dx10-desktop .erp-sidebar {
  position: sticky !important;
  top: 0 !important;
  width: var(--dx10-sidebar) !important;
  min-width: var(--dx10-sidebar) !important;
  max-width: var(--dx10-sidebar) !important;
  height: 100dvh !important;
  padding-inline: 14px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  transform: none !important;
  background: #ffffff !important;
  border-right: 1px solid #dce5ee !important;
  box-shadow: none !important;
}

body.dx10-desktop .erp-sidebar,
body.dx10-desktop .erp-sidebar * {
  min-width: revert;
}

body.dx10-desktop .erp-content {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: var(--dx10-pad) !important;
  overflow-x: hidden !important;
  transform: none !important;
  zoom: 1 !important;
}

body.dx10-desktop .erp-content > * {
  width: 100% !important;
  max-width: 1760px !important;
  min-width: 0 !important;
  margin-inline: auto !important;
}

body.dx10-tablet,
body.dx10-phone {
  padding-top:
    calc(
      var(--dx10-mobilebar) +
      env(safe-area-inset-top)
    ) !important;
}

body.dx10-tablet .erp-shell,
body.dx10-phone .erp-shell {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height:
    calc(
      100dvh -
      var(--dx10-mobilebar)
    ) !important;
  margin: 0 !important;
  transform: none !important;
  zoom: 1 !important;
}

body.dx10-tablet .dx10-mobilebar,
body.dx10-phone .dx10-mobilebar {
  position: fixed !important;
  z-index: 90000 !important;
  inset: 0 0 auto 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100% !important;
  height:
    calc(
      var(--dx10-mobilebar) +
      env(safe-area-inset-top)
    ) !important;
  padding:
    calc(9px + env(safe-area-inset-top))
    12px
    9px !important;
  border-bottom: 1px solid #d7e1eb !important;
  background: rgba(255, 255, 255, 0.99) !important;
  box-shadow:
    0 6px 22px
    rgba(22, 43, 65, 0.13) !important;
  backdrop-filter: blur(12px);
}

.dx10-menu-button {
  all: unset !important;
  display: grid !important;
  place-items: center !important;
  width: 44px !important;
  height: 44px !important;
  flex: 0 0 44px !important;
  border: 1px solid #cfdbe6 !important;
  border-radius: 12px !important;
  background: #ffffff !important;
  color: #244963 !important;
  box-shadow:
    0 4px 14px
    rgba(26, 47, 68, 0.10) !important;
  cursor: pointer !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
}

.dx10-menu-button span {
  font-size: 25px !important;
  line-height: 1 !important;
}

.dx10-mobile-title {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.dx10-mobile-title strong {
  color: #15324d;
  font-size: 15px;
  line-height: 1.15;
}

.dx10-mobile-title small {
  margin-top: 2px;
  color: #748397;
  font-size: 11px;
}

body.dx10-tablet .erp-sidebar,
body.dx10-phone .erp-sidebar {
  position: fixed !important;
  z-index: 90020 !important;
  inset: 0 auto 0 0 !important;
  width: min(88vw, 330px) !important;
  min-width: 0 !important;
  max-width: 330px !important;
  height: 100dvh !important;
  margin: 0 !important;
  padding-inline: 16px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  transform:
    translate3d(-110%, 0, 0) !important;
  transition:
    transform 0.22s ease !important;
  background: #ffffff !important;
  border-right: 0 !important;
  box-shadow:
    20px 0 60px
    rgba(12, 26, 40, 0.28) !important;
}

body.dx10-menu-open .erp-sidebar {
  transform:
    translate3d(0, 0, 0) !important;
}

body.dx10-tablet .dx10-close,
body.dx10-phone .dx10-close {
  all: unset !important;
  position: absolute !important;
  z-index: 4 !important;
  top: 10px !important;
  right: 10px !important;
  display: grid !important;
  place-items: center !important;
  width: 40px !important;
  height: 40px !important;
  border: 1px solid #d3dee9 !important;
  border-radius: 11px !important;
  background: #ffffff !important;
  color: #294963 !important;
  box-shadow:
    0 4px 14px
    rgba(26, 47, 68, 0.10) !important;
  cursor: pointer !important;
}

.dx10-close span {
  font-size: 28px !important;
  line-height: 1 !important;
}

body.dx10-tablet .dx10-overlay,
body.dx10-phone .dx10-overlay {
  all: unset !important;
  position: fixed !important;
  z-index: 90010 !important;
  inset: 0 !important;
  display: block !important;
  width: 100vw !important;
  height: 100dvh !important;
  background: rgba(10, 23, 37, 0.54) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition:
    opacity 0.20s ease,
    visibility 0.20s ease !important;
}

body.dx10-menu-open .dx10-overlay {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

body.dx10-tablet .erp-content,
body.dx10-phone .erp-content {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: clamp(12px, 2.5vw, 20px) !important;
  overflow-x: hidden !important;
  transform: none !important;
  zoom: 1 !important;
}

body.dx10-tablet .erp-content > *,
body.dx10-phone .erp-content > * {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

.role-dashboard,
.erp-page {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  transform: none !important;
  zoom: 1 !important;
}

.role-dashboard {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--dx10-gap) !important;
}

.role-dashboard-grid {
  display: grid !important;
  grid-template-columns:
    repeat(3, minmax(0, 1fr)) !important;
  gap: var(--dx10-gap) !important;
}

.role-dashboard-bottom {
  display: grid !important;
  grid-template-columns:
    repeat(2, minmax(0, 1fr)) !important;
  gap: var(--dx10-gap) !important;
}

body.dx10-tablet .role-dashboard-grid {
  grid-template-columns:
    repeat(2, minmax(0, 1fr)) !important;
}

body.dx10-tablet .role-dashboard-bottom {
  grid-template-columns: 1fr !important;
}

body.dx10-phone .role-dashboard-grid,
body.dx10-phone .role-dashboard-bottom,
body.dx10-phone .employee-self-summary-grid,
body.dx10-phone .unified-employees-summary,
body.dx10-phone .production-kpis,
body.dx10-phone .inventory-kpis,
body.dx10-phone .accounts-kpi-grid,
body.dx10-phone .billing-kpis,
body.dx10-phone .qo-kpi-grid {
  grid-template-columns: 1fr !important;
}

body.dx10-phone .role-dashboard-welcome,
body.dx10-phone .role-dashboard-card,
body.dx10-phone .role-dashboard-panel,
body.dx10-phone .unified-employees-header,
body.dx10-phone .unified-employees-register,
body.dx10-phone .employee-self-service {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  padding: 16px !important;
  border-radius: 14px !important;
}

body.dx10-phone .role-dashboard-card {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  min-height: 104px !important;
}

body.dx10-phone .role-dashboard-card-icon {
  width: 46px !important;
  height: 46px !important;
  flex: 0 0 46px !important;
}

body.dx10-phone .role-dashboard-card span {
  font-size: 11px !important;
}

body.dx10-phone .role-dashboard-card strong {
  margin-block: 4px !important;
  font-size: 23px !important;
}

body.dx10-phone .role-dashboard-card small {
  font-size: 12px !important;
}

body.dx10-phone .erp-header,
body.dx10-phone .role-dashboard-welcome,
body.dx10-phone .unified-employees-header,
body.dx10-phone [class*="page-header"],
body.dx10-phone [class*="page-head"] {
  align-items: stretch !important;
  flex-direction: column !important;
  gap: 12px !important;
}

body.dx10-phone .erp-header h1,
body.dx10-phone .erp-page > h1 {
  margin: 0 !important;
  font-size: 27px !important;
  line-height: 1.15 !important;
}

body.dx10-phone .erp-page [class*="filters"],
body.dx10-phone .erp-page [class*="toolbar"],
body.dx10-phone .erp-page [class*="page-actions"],
body.dx10-phone .erp-page [class*="modal-actions"] {
  display: flex !important;
  align-items: stretch !important;
  flex-direction: column !important;
  gap: 10px !important;
  width: 100% !important;
}

body.dx10-phone .erp-page [class*="filters"] > *,
body.dx10-phone .erp-page [class*="toolbar"] > *,
body.dx10-phone .erp-page [class*="page-actions"] > *,
body.dx10-phone .erp-page [class*="modal-actions"] > * {
  width: 100% !important;
  min-width: 0 !important;
}

body.dx10-phone .erp-page input,
body.dx10-phone .erp-page select,
body.dx10-phone .erp-page textarea {
  width: 100% !important;
  min-height: 46px !important;
  padding-inline: 12px !important;
  font-size: 16px !important;
}

.dx10-table-host,
.erp-page [class*="table-wrap"],
.erp-page [class*="table-container"],
.erp-page [class*="register"] {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch;
}

.dx10-responsive-table,
.erp-page table {
  width: 100%;
  border-collapse: collapse;
}

body.dx10-phone .dx10-table-host {
  overflow: visible !important;
}

body.dx10-phone .dx10-responsive-table {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  background: transparent !important;
}

body.dx10-phone .dx10-responsive-table thead {
  display: none !important;
}

body.dx10-phone .dx10-responsive-table tbody {
  display: grid !important;
  gap: 12px !important;
  width: 100% !important;
}

body.dx10-phone .dx10-responsive-table tr {
  display: block !important;
  width: 100% !important;
  padding: 12px 14px !important;
  border: 1px solid #dbe4ed !important;
  border-radius: 14px !important;
  background: #ffffff !important;
  box-shadow:
    0 5px 16px
    rgba(29, 49, 70, 0.06) !important;
}

body.dx10-phone .dx10-responsive-table td {
  display: grid !important;
  grid-template-columns:
    minmax(110px, 38%)
    minmax(0, 1fr) !important;
  gap: 12px !important;
  width: 100% !important;
  min-height: 38px !important;
  padding: 8px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #edf1f5 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  text-align: left !important;
  font-size: 13px !important;
}

body.dx10-phone .dx10-responsive-table td:last-child {
  border-bottom: 0 !important;
}

body.dx10-phone .dx10-responsive-table td::before {
  content: attr(data-dx10-label);
  color: #6e7f93 !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  text-transform: uppercase;
  letter-spacing: 0.035em;
}

body.dx10-phone .erp-page [class*="modal-card"],
body.dx10-phone .erp-page [class*="modal-content"],
body.dx10-phone .employee-self-modal-card,
body.dx10-phone .unified-employees-modal {
  width: calc(100vw - 16px) !important;
  max-width: calc(100vw - 16px) !important;
  max-height: calc(100dvh - 16px) !important;
  border-radius: 15px !important;
}

body.dx10-phone .erp-page [class*="pagination"] {
  display: flex !important;
  align-items: stretch !important;
  flex-direction: column !important;
  gap: 9px !important;
  width: 100% !important;
}

body.dx10-phone .erp-page [class*="pagination"] > div {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  width: 100% !important;
}

body.dx10-phone .erp-page [class*="pagination"] button {
  width: 100% !important;
  min-height: 44px !important;
}

@media (max-width: 430px) {
  body.dx10-phone .erp-sidebar {
    width: 94vw !important;
  }

  body.dx10-phone .erp-content {
    padding: 8px !important;
  }

  body.dx10-phone .dx10-responsive-table td {
    grid-template-columns: 1fr !important;
    gap: 4px !important;
  }
}

@media (hover: none) and (pointer: coarse) {
  button,
  a,
  input,
  select,
  textarea {
    touch-action: manipulation;
  }

  .erp-page button,
  .erp-page a[role="button"] {
    min-height: 44px;
  }
}