:root {
  --erp-color-primary: #0b76b7;
  --erp-color-primary-strong: #075985;
  --erp-color-primary-soft: #e8f4fb;
  --erp-color-success: #168566;
  --erp-color-warning: #b7791f;
  --erp-color-danger: #c2414b;
  --erp-color-text: #243447;
  --erp-color-muted: #66788a;
  --erp-color-border: #dce5ed;
  --erp-color-border-strong: #c8d4df;
  --erp-color-surface: #ffffff;
  --erp-color-surface-muted: #f7f9fb;
  --erp-color-canvas: #f2f5f8;
  --erp-radius-sm: .4rem;
  --erp-radius-md: .65rem;
  --erp-radius-lg: .85rem;
  --erp-shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);
  --erp-shadow-md: 0 8px 24px rgba(15, 23, 42, .07);
  --erp-focus-ring: 0 0 0 .2rem rgba(11, 118, 183, .16);
  --erp-control-height: 34px;
}

body.erp-ui-v2 {
  color: var(--erp-color-text);
  background: var(--erp-color-canvas);
  font-size: .875rem;
  line-height: 1.45;
}

body.erp-ui-v2 .erp-skip-link {
  position: fixed;
  z-index: 1100;
  top: .5rem;
  left: .5rem;
  padding: .55rem .8rem;
  border-radius: var(--erp-radius-sm);
  color: #ffffff;
  background: var(--erp-color-primary-strong);
  box-shadow: var(--erp-shadow-md);
  transform: translateY(calc(-100% - 1rem));
  transition: transform .15s ease;
}

body.erp-ui-v2 .erp-skip-link:focus,
body.erp-ui-v2 .erp-skip-link:focus-visible {
  color: #ffffff;
  transform: translateY(0);
}

.erp-ui-v2 .erp-content {
  background:
    radial-gradient(circle at top right, rgba(11, 118, 183, .035), transparent 28rem),
    var(--erp-color-canvas);
}

.erp-ui-v2 .erp-header {
  border-color: rgba(200, 212, 223, .9) !important;
  box-shadow: 0 2px 12px rgba(15, 23, 42, .055) !important;
}

.erp-ui-v2 .erp-main {
  width: 100%;
}

.erp-ui-v2 .erp-page-surface {
  border: 1px solid var(--erp-color-border) !important;
  border-radius: var(--erp-radius-lg);
  background: var(--erp-color-surface);
  box-shadow: var(--erp-shadow-sm);
}

.erp-ui-v2 .erp-page-surface > .card-body {
  padding: clamp(.85rem, 1.4vw, 1.25rem);
}

.erp-ui-v2 .erp-page-title,
.erp-ui-v2 .erp-module-title {
  color: var(--erp-color-text);
  font-size: 1.08rem;
  font-weight: 650;
  line-height: 1.3;
  letter-spacing: -.012em;
}

.erp-ui-v2 .erp-legacy-module-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .65rem 1rem;
  padding-top: .15rem;
  padding-bottom: .8rem;
  margin-bottom: .35rem;
  border-bottom: 1px solid var(--erp-color-border);
}

.erp-ui-v2 .erp-legacy-title-row {
  padding-top: .15rem;
  margin-bottom: .35rem;
}

.erp-ui-v2 .erp-command-row {
  flex-wrap: wrap !important;
  gap: .55rem 1rem;
  margin-bottom: .65rem;
}

.erp-ui-v2 .erp-legacy-module-header > .erp-page-title {
  margin: 0;
}

.erp-ui-v2 .erp-command-bar,
.erp-ui-v2 .erp-module-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.erp-ui-v2 .erp-module-actions {
  gap: .3rem;
}

.erp-ui-v2 .erp-utility-strip {
  display: flex;
  justify-content: center;
  margin-bottom: .65rem;
}

.erp-ui-v2 .erp-utility-bar {
  display: inline-flex;
  flex-wrap: nowrap;
  max-width: 100%;
  border-radius: var(--erp-radius-sm);
  box-shadow: var(--erp-shadow-sm);
}

.erp-ui-v2 .erp-command-bar.btn-group {
  flex-wrap: nowrap;
  gap: 0;
  border-radius: var(--erp-radius-sm);
  box-shadow: var(--erp-shadow-sm);
}

.erp-ui-v2 .erp-command-bar .btn,
.erp-ui-v2 .erp-module-actions .btn {
  min-height: var(--erp-control-height);
  padding: .36rem .68rem;
  font-size: .82rem;
  font-weight: 600;
  line-height: 1.15;
}

.erp-ui-v2 .btn-primary {
  --bs-btn-bg: var(--erp-color-primary);
  --bs-btn-border-color: var(--erp-color-primary);
  --bs-btn-hover-bg: var(--erp-color-primary-strong);
  --bs-btn-hover-border-color: var(--erp-color-primary-strong);
  --bs-btn-active-bg: var(--erp-color-primary-strong);
  --bs-btn-active-border-color: var(--erp-color-primary-strong);
}

.erp-ui-v2 .btn-success {
  --bs-btn-bg: var(--erp-color-success);
  --bs-btn-border-color: var(--erp-color-success);
}

.erp-ui-v2 .btn-danger {
  --bs-btn-bg: var(--erp-color-danger);
  --bs-btn-border-color: var(--erp-color-danger);
}

.erp-ui-v2 .btn:disabled,
.erp-ui-v2 .btn.disabled {
  opacity: .52;
  box-shadow: none;
}

.erp-ui-v2 .dropdown-item:disabled,
.erp-ui-v2 .dropdown-item.disabled {
  opacity: .5;
}

.erp-ui-v2 .dropdown-item:disabled .badge,
.erp-ui-v2 .dropdown-item.disabled .badge {
  opacity: .55;
  filter: saturate(.45);
}

.erp-ui-v2 .erp-icon-button {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-width: var(--erp-control-height);
  min-height: var(--erp-control-height);
}

.erp-ui-v2 .erp-form label,
.erp-ui-v2 .erp-field-label {
  color: #526477;
  font-size: .79rem;
  font-weight: 600;
}

.erp-ui-v2 .erp-form .form-control,
.erp-ui-v2 .erp-form .form-select,
.erp-ui-v2 .erp-form .input-group-text {
  min-height: var(--erp-control-height);
  border-color: var(--erp-color-border-strong);
  border-radius: var(--erp-radius-sm);
  color: var(--erp-color-text);
}

.erp-ui-v2 .erp-form textarea.form-control {
  min-height: 62px;
}

.erp-ui-v2 .erp-form .form-control:focus,
.erp-ui-v2 .erp-form .form-select:focus {
  border-color: var(--erp-color-primary);
  box-shadow: var(--erp-focus-ring);
}

.erp-ui-v2 fieldset:disabled .form-control,
.erp-ui-v2 fieldset:disabled .form-select,
.erp-ui-v2 .form-control:disabled,
.erp-ui-v2 .form-select:disabled {
  color: #536579;
  background-color: #edf2f6;
  border-color: #e0e7ee;
  opacity: 1;
}

.erp-ui-v2 .erp-form small.text-danger {
  display: block;
  margin-top: .2rem;
  font-size: .74rem;
}

.erp-ui-v2 .nav-tabs {
  gap: .18rem;
  border-bottom-color: var(--erp-color-border);
}

.erp-ui-v2 .nav-tabs .nav-link {
  min-height: var(--erp-control-height);
  padding: .42rem .72rem;
  border-radius: var(--erp-radius-sm) var(--erp-radius-sm) 0 0;
  color: #526477;
  font-size: .82rem;
  font-weight: 600;
  white-space: nowrap;
}

.erp-ui-v2 .nav-tabs .nav-link:hover {
  color: var(--erp-color-primary-strong);
  background: var(--erp-color-primary-soft);
  border-color: transparent;
}

.erp-ui-v2 .nav-tabs .nav-link.active {
  color: var(--erp-color-primary-strong);
  background: var(--erp-color-surface);
  border-color: var(--erp-color-border) var(--erp-color-border) var(--erp-color-surface);
}

.erp-ui-v2 .erp-data-grid {
  border: 1px solid var(--erp-color-border);
  border-radius: var(--erp-radius-md);
  background: var(--erp-color-surface);
}

.erp-ui-v2 .erp-data-grid .dx-datagrid-headers,
.erp-ui-v2 .erp-data-grid .dx-datagrid-header-panel,
.erp-ui-v2 .erp-data-grid .dx-toolbar {
  background: var(--erp-color-surface-muted);
}

.erp-ui-v2 .erp-data-grid .dx-datagrid-headers .dx-header-row > td {
  color: #435568;
  font-size: .77rem;
  font-weight: 650;
  letter-spacing: .01em;
}

.erp-ui-v2 .erp-data-grid .dx-data-row > td {
  border-color: #e7edf2;
}

.erp-ui-v2 .erp-data-grid .dx-data-row.dx-state-hover > td {
  background: #f2f8fc;
}

.erp-ui-v2 .erp-data-grid .dx-row.selected > td,
.erp-ui-v2 .erp-data-grid .dx-selection > td {
  background: var(--erp-color-primary-soft) !important;
}

.erp-ui-v2 .erp-data-grid .dx-datagrid-nodata {
  color: var(--erp-color-muted);
  font-size: .82rem;
}

.erp-ui-v2 .dx-popup-wrapper .dx-overlay-content {
  border: 1px solid var(--erp-color-border);
  border-radius: var(--erp-radius-lg);
  box-shadow: 0 20px 55px rgba(15, 23, 42, .18);
}

.erp-ui-v2 .dx-popup-title {
  border-bottom-color: var(--erp-color-border);
  background: var(--erp-color-surface-muted);
  color: var(--erp-color-text);
  font-weight: 650;
}

.erp-ui-v2 .modal-content {
  border: 1px solid var(--erp-color-border);
  border-radius: var(--erp-radius-lg);
  box-shadow: var(--erp-shadow-md);
}

.erp-ui-v2 .modal-header,
.erp-ui-v2 .modal-footer {
  border-color: var(--erp-color-border);
}

.erp-ui-v2 .dropdown-menu {
  padding: .4rem;
  border-color: var(--erp-color-border);
  border-radius: var(--erp-radius-md);
  box-shadow: var(--erp-shadow-md);
}

.erp-ui-v2 .erp-attachment-menu {
  width: min(380px, calc(100vw - 1.5rem));
  min-width: min(380px, calc(100vw - 1.5rem)) !important;
  max-width: calc(100vw - 1.5rem);
  max-height: min(350px, calc(100vh - 6rem));
  overflow-y: auto;
}

.erp-ui-v2 .dropdown-item {
  border-radius: .35rem;
}

.erp-ui-v2 .erp-side-menu,
.erp-ui-v2 .dx-drawer-panel-content {
  border-right: 1px solid var(--erp-color-border);
  background: var(--erp-color-surface);
}

.erp-ui-v2 .dx-treeview-item {
  min-height: 34px;
  border-radius: .35rem;
}

.erp-ui-v2 .dx-treeview-node-container {
  padding-right: .25rem;
}

.erp-ui-v2 li.erp-menu-active > .dx-treeview-item {
  background: var(--erp-color-primary-soft) !important;
  color: var(--erp-color-primary-strong);
  font-weight: 650;
}

.erp-ui-v2 li.erp-menu-active > .dx-treeview-item a {
  color: var(--erp-color-primary-strong) !important;
}

.erp-ui-v2 .erp-footer {
  color: var(--erp-color-muted);
  border-color: var(--erp-color-border) !important;
  box-shadow: 0 -1px 8px rgba(15, 23, 42, .035);
}

.erp-ui-v2 .erp-page--report .erp-page-surface > .card-body {
  display: grid;
  gap: .8rem;
}

.erp-ui-v2 .erp-page--report .erp-page-title {
  padding-bottom: .65rem;
  margin-bottom: .25rem;
  border-bottom: 1px solid var(--erp-color-border);
}

.erp-ui-v2 .erp-report-actions,
.erp-ui-v2 .erp-report-view-options {
  flex-wrap: wrap;
  min-width: 0;
}

.erp-ui-v2 :where(button, a, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid rgba(11, 118, 183, .75);
  outline-offset: 2px;
}

@media (pointer: coarse) {
  .erp-ui-v2 .erp-toolbar .dx-button,
  .erp-ui-v2 .erp-command-bar .btn,
  .erp-ui-v2 .erp-module-actions .btn,
  .erp-ui-v2 .erp-utility-bar .btn {
    min-width: 44px;
    min-height: 44px;
  }

  .erp-ui-v2 .dx-treeview-item {
    min-height: 44px;
  }
}

@media (max-width: 991.98px) {
  .erp-ui-v2 .erp-legacy-module-header,
  .erp-ui-v2 .erp-module-header {
    align-items: stretch;
  }

  .erp-ui-v2 .erp-module-actions {
    width: 100%;
    justify-content: flex-end;
    flex-wrap: wrap;
  }

  .erp-ui-v2 .erp-module-actions > .erp-command-bar {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
  }

  .erp-ui-v2 .erp-module-actions > .dropdown {
    flex: 0 0 auto;
  }

  .erp-ui-v2 .erp-page-surface > .card-body {
    padding: .8rem;
  }
}

@media (max-width: 575.98px) {
  .erp-ui-v2 .erp-command-bar .btn,
  .erp-ui-v2 .erp-module-actions .btn {
    flex: 1 1 auto;
  }

  .erp-ui-v2 .erp-page-title,
  .erp-ui-v2 .erp-module-title {
    font-size: 1rem;
  }

  .erp-ui-v2 .erp-utility-strip {
    justify-content: flex-end;
  }

  .erp-ui-v2 .erp-utility-bar .btn {
    min-height: var(--erp-control-height);
    padding: .35rem .55rem;
    font-size: .78rem;
  }

  .erp-ui-v2 .nav-tabs {
    flex-wrap: nowrap;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
  }

  .erp-ui-v2 .modal-dialog {
    max-width: calc(100vw - 1rem);
    margin: .5rem;
  }

  .erp-ui-v2 .erp-report-actions {
    align-items: flex-start !important;
    gap: .65rem !important;
  }

  .erp-ui-v2 .erp-report-view-options {
    flex: 1 1 100%;
    gap: .45rem .65rem !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .erp-ui-v2 *,
  .erp-ui-v2 *::before,
  .erp-ui-v2 *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
