/* BLACK X shared controls. Geometry and motion follow the supplied designs. */
:root {
  --bx-control-surface: #ffffff;
  --bx-control-line: #ccd8d2;
  --bx-control-label: #536967;
  --bx-control-text: #132322;
  --bx-control-accent: var(--bx-green-500, #26d791);
  --bx-control-accent-secondary: var(--bx-green-300, #86ebcd);
}

.bx-checkbox {
  display: inline-block; position: relative; inline-size: 25px; block-size: 25px;
  flex: 0 0 25px; vertical-align: middle; margin: 0; cursor: pointer; user-select: none;
  --bx-checkbox-line: var(--bx-green-700, #0d6044);
}
body.blackx-identity .bx-checkbox > input[type="checkbox"] {
  position: absolute !important; inset: 0 !important; opacity: 0 !important;
  inline-size: 25px !important; block-size: 25px !important; margin: 0 !important;
  padding: 0 !important; cursor: pointer; z-index: 2; appearance: none;
}
.bx-checkbox__mark {
  position: absolute; inset-block-start: 0; inset-inline-start: 0;
  inline-size: 25px; block-size: 25px; border: 2.5px solid var(--bx-checkbox-line);
  background: transparent; border-radius: 0; transition: .2s linear; pointer-events: none;
}
.bx-checkbox__mark::after {
  content: ""; position: absolute; visibility: hidden; opacity: 0;
  left: 50%; top: 40%; width: 10px; height: 14px;
  border: 2px solid var(--bx-control-accent); border-width: 0 2.5px 2.5px 0;
  filter: drop-shadow(0 0 10px var(--bx-control-accent)); transition: .2s linear;
  transform: translate(-50%, -50%) rotate(-90deg) scale(.2);
}
.bx-checkbox > input:checked ~ .bx-checkbox__mark {
  transform: rotate(45deg); border: none; background: transparent;
}
.bx-checkbox > input:checked ~ .bx-checkbox__mark::after {
  visibility: visible; opacity: 1; transform: translate(-50%, -50%) rotate(0deg) scale(1);
  animation: bx-checkbox-pulse 1s ease-in;
}
.bx-checkbox > input:indeterminate ~ .bx-checkbox__mark::after {
  visibility: visible; opacity: 1; width: 12px; height: 0; border-width: 0 0 2.5px;
  top: 50%; transform: translate(-50%, -50%); animation: none;
}
.bx-checkbox > input:focus-visible ~ .bx-checkbox__mark {
  outline: 2px solid var(--bx-control-accent); outline-offset: 5px;
}
.bx-checkbox:has(> input:disabled) { opacity: .45; cursor: not-allowed; }
.bx-checkbox > input:disabled { cursor: not-allowed !important; }
.bx-checkbox:has(> input[aria-invalid="true"]) { --bx-checkbox-line: var(--bx-danger); }
.bx-checkbox__label { cursor: pointer; gap: 10px; }
.bx-checkbox__label > .bx-checkbox { margin-inline-end: 5px; }
:is(thead, .blackx-universal-sidebar, [data-bx-surface="dark"]) .bx-checkbox {
  --bx-checkbox-line: var(--bx-text-inverse, #f2fffc);
}
@keyframes bx-checkbox-pulse {
  0%, 100% { transform: translate(-50%, -50%) rotate(0deg) scale(1); }
  50% { transform: translate(-50%, -50%) rotate(0deg) scale(1.6); }
}

body.blackx-identity .bx-form {
  --bx-control-accent: var(--bx-green-600, #17905f);
  --bx-text: var(--bx-control-text); --bx-text-strong: #081716; --bx-text-muted: var(--bx-control-label);
  --bx-text-on-light: var(--bx-control-text); --bx-text-on-light-strong: #081716;
  --bx-text-on-light-muted: var(--bx-control-label);
  background: linear-gradient(var(--bx-control-surface), var(--bx-control-surface)) padding-box,
    linear-gradient(145deg, transparent 35%, var(--bx-control-accent), var(--bx-control-accent-secondary)) border-box !important;
  border: 2px solid transparent !important; border-radius: 16px !important;
  padding: 32px 24px; box-sizing: border-box; font-family: inherit; font-size: 14px;
  color: var(--bx-control-text) !important; min-inline-size: 0; max-inline-size: 100%;
  /* Display, column definitions and widths remain owned by the business layout. */
  row-gap: 20px;
}
body.blackx-identity .bx-form.auth-form { inline-size: 400px; max-inline-size: 100%; }
body.blackx-identity .bx-form.auth-form :is(button[type="submit"], input[type="submit"]) {
  inline-size: 40%; min-inline-size: min(100%, 8rem); justify-self: start;
  display: flex; align-items: flex-start; justify-content: center; margin-block-start: 8px;
}
body.blackx-identity .bx-form--embedded {
  background: transparent !important; border: 0 !important; padding: 0; border-radius: 0 !important;
}
body.blackx-identity .bx-form table {
  --bx-text: #132322; --bx-text-strong: #081716; --bx-text-muted: #536967;
  --bx-text-on-light: #132322; --bx-text-on-light-strong: #081716; --bx-text-on-light-muted: #536967;
}
body.blackx-identity .bx-form tbody .bx-checkbox { --bx-checkbox-line: var(--bx-green-700); }
body.blackx-identity .bx-form :is(.bx-fieldset, .bx-form-section, .form-section) {
  background: transparent; border-color: var(--bx-control-line);
}
body.blackx-identity .bx-form :is(.bx-source-line-card, .card, .erp-card, .blackx-card, .erp-section, .erp-panel, .axl-preview, .axl-guidance, .rx-card) {
  background: var(--bx-control-surface) !important; border-color: var(--bx-control-line);
}
body.blackx-identity .bx-form :is(label, legend) {
  color: var(--bx-control-label) !important; font-weight: 600; font-size: 12px;
}
body.blackx-identity .bx-form :is(.bx-field, .form-group, .auth-field, .bx-form__group) {
  min-inline-size: 0; row-gap: 2px;
}
body.blackx-identity .bx-form :is(.bx-field, .form-group, .auth-field, .bx-form__group) > label {
  display: block; margin-block-end: 5px;
}
body.blackx-identity .bx-form :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="color"]):not([type="range"]), textarea, select),
body.blackx-identity .bx-form__control,
body.blackx-identity .bx-form :is(.select2-selection--single, .select2-selection--multiple, .choices__inner, .ts-control) {
  inline-size: 100%; min-inline-size: 0; max-inline-size: 100%; padding: 12px 16px;
  border-radius: 8px !important; border: 1px solid var(--bx-control-line) !important;
  color: var(--bx-control-text) !important; background: var(--bx-control-surface) !important;
  font-family: inherit; font-size: inherit; box-sizing: border-box; color-scheme: light;
  min-block-size: 44px; box-shadow: none;
}
body.blackx-identity .bx-form textarea { block-size: 96px; resize: none; }
body.blackx-identity .bx-form :is(input, textarea)::placeholder { color: var(--bx-control-label) !important; opacity: .5; }
body.blackx-identity .bx-form :is(input, select, textarea):focus,
body.blackx-identity .bx-form :is(.select2-container--focus .select2-selection, .choices.is-focused .choices__inner, .ts-wrapper.focus .ts-control) {
  outline: none; border-color: var(--bx-control-accent) !important;
  box-shadow: 0 0 0 2px rgb(38 215 145 / .12);
}
body.blackx-identity .bx-form select option { background: var(--bx-control-surface) !important; color: var(--bx-control-text) !important; }
body.blackx-identity .bx-form :is(input, select, textarea):disabled {
  color: var(--bx-theme-muted, #718583) !important; background: var(--bx-theme-raised, #edf3f0) !important; opacity: .75; cursor: not-allowed;
}
body.blackx-identity .bx-form :is(input, textarea)[readonly] { background: var(--bx-theme-surface, #f3f7f5) !important; color: var(--bx-theme-muted, #536967) !important; }
body.blackx-identity .bx-form :is([aria-invalid="true"], .is-invalid),
body.blackx-identity .bx-form :is(.bx-field--invalid, .has-error) :is(input, select, textarea) {
  border-color: var(--bx-danger-hot) !important;
}
body.blackx-identity .bx-form :is(.errorlist, .bx-field__errors, .invalid-feedback) { color: var(--bx-theme-danger-text, var(--bx-danger-deep)) !important; }
body.blackx-identity .bx-form :is(.helptext, .form-text, .bx-field__help) { color: var(--bx-control-label) !important; }
body.blackx-identity .bx-form tbody :is(label, .helptext, .bx-field__help) { color: var(--bx-theme-muted, #536967) !important; }
body.blackx-identity .bx-form :is(button[type="submit"], button:not([type]), input[type="submit"], .bx-form__submit) {
  --bx-button-color: var(--bx-green-900);
  background: var(--bx-theme-raised, #edf3f0) !important; border: 1px solid var(--bx-control-line) !important;
  color: var(--bx-button-color) !important; border-radius: 6px !important;
  padding: 12px 16px; font: inherit; font-weight: 600; gap: 8px; cursor: pointer;
  box-shadow: none; min-inline-size: 0; max-inline-size: 100%;
}
body.blackx-identity .bx-form :is(button[type="submit"], button:not([type]), input[type="submit"]):hover:not(:disabled) {
  --bx-button-color: var(--bx-green-950); background: var(--bx-theme-surface, #f2fffc) !important; border-color: var(--bx-theme-border, #f2fffc) !important;
}
body.blackx-identity .bx-form :is(button, input[type="submit"], input[type="button"]):active:not(:disabled) { scale: .95; }
body.blackx-identity .bx-form :is(button, input[type="submit"]):disabled { opacity: .5; cursor: not-allowed; }
body.blackx-identity .bx-form :is(.btn-danger, .blackx-btn--danger, [data-blackx-danger])[type="submit"] {
  --bx-button-color: #fff; background: var(--bx-danger-deep) !important; border-color: var(--bx-danger) !important;
}
body.blackx-identity .bx-form .select2-container { max-inline-size: 100%; min-inline-size: 0; }
body.blackx-identity .bx-form .select2-selection__rendered { color: var(--bx-control-text) !important; padding: 0 !important; }
body.blackx-identity .bx-form .select2-selection--single { height: auto; }
body.blackx-identity .bx-form .select2-selection__arrow { inset-block-start: 50%; transform: translateY(-50%); }
body.blackx-identity .bx-form :is(.select2-container--disabled, .choices.is-disabled, .ts-wrapper.disabled) :is(.select2-selection, .choices__inner, .ts-control) {
  background: var(--bx-theme-raised, #edf3f0) !important; opacity: .75; cursor: not-allowed;
}
body.blackx-identity .bx-form .bx-field--invalid :is(.select2-selection, .choices__inner, .ts-control) { border-color: var(--bx-danger-hot) !important; }
.select2-dropdown.bx-form__select-dropdown { background: var(--bx-control-surface); color: var(--bx-control-text); border-color: var(--bx-control-line); }
.bx-form__select-dropdown .select2-search__field { background: var(--bx-control-surface); color: var(--bx-control-text); border: 1px solid var(--bx-control-line); border-radius: 8px; padding: 12px 16px; }
.bx-form__select-dropdown .select2-results__option--highlighted[aria-selected] { background: var(--bx-green-700); color: #fff; }
body.blackx-identity .bx-form :is(.choices__list--dropdown, .ts-dropdown) { background: var(--bx-control-surface); color: var(--bx-control-text); border-color: var(--bx-control-line); }

.bx-global-loader {
  position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center;
  padding: 16px; background: rgb(7 16 15 / .94); opacity: 0; visibility: hidden;
  pointer-events: none; transition: opacity .22s ease, visibility .22s ease;
}
.bx-global-loader.is-visible { opacity: 1; visibility: visible; pointer-events: auto; }
html[data-bx-loader-arrival] .bx-global-loader { opacity: 1; visibility: visible; pointer-events: auto; }
.bx-global-loader__card {
  --bx-loader-bg: #111; background: var(--bx-loader-bg); padding: 1rem 2rem;
  border-radius: 1.25rem; max-inline-size: 100%; min-inline-size: 0;
}
.bx-global-loader__line {
  color: var(--bx-theme-muted, #929b96); font-family: inherit; font-weight: 500; font-size: 25px;
  box-sizing: content-box; height: 40px; padding: 10px; display: flex;
  align-items: stretch; border-radius: 8px; line-height: 40px;
}
body.blackx-identity .bx-global-loader__intro { margin: 0; color: var(--bx-theme-muted, #929b96) !important; white-space: nowrap; }
.bx-global-loader__words { overflow: hidden; position: relative; min-inline-size: 0; }
.bx-global-loader__words::after {
  content: ""; position: absolute; inset: 0; z-index: 20;
  background: linear-gradient(var(--bx-loader-bg) 10%, transparent 30%, transparent 70%, var(--bx-loader-bg) 90%);
}
.bx-global-loader__word {
  display: block; height: 100%; padding-inline-start: 6px; white-space: nowrap;
  color: var(--bx-control-accent); animation: bx-loader-words 4s infinite;
}
.bx-global-loader:not(.is-visible) .bx-global-loader__word { animation-play-state: paused; }
@keyframes bx-loader-words {
  10% { transform: translateY(-102%); } 25% { transform: translateY(-100%); }
  35% { transform: translateY(-202%); } 50% { transform: translateY(-200%); }
  60% { transform: translateY(-302%); } 75% { transform: translateY(-300%); }
  85% { transform: translateY(-402%); } 100% { transform: translateY(-400%); }
}
@media (max-width: 480px) {
  body.blackx-identity .bx-form:not(.bx-form--embedded) { padding: 24px 16px; }
  .bx-global-loader__card { padding: 1rem; }
  .bx-global-loader__line { font-size: clamp(16px, 5vw, 25px); padding: 10px 2px; }
}
@media (prefers-reduced-motion: reduce) {
  .bx-checkbox__mark, .bx-checkbox__mark::after, .bx-global-loader { transition: none; }
  .bx-checkbox > input:checked ~ .bx-checkbox__mark::after, .bx-global-loader__word { animation: none; }
  body.blackx-identity .bx-form :is(button, input[type="submit"], input[type="button"]):active { scale: 1; }
}
