/* public/css/nedate-form-system.css
 * Centralized NEDATE form/control system.
 * Loaded after blade-views.css and ui-angular-controls.css so legacy Blade pages,
 * user pages and admin pages share the same squared, theme-driven controls.
 */

body.nedate-ui-standard {
  --nd-control-bg: #ffffff;
  --nd-control-text: var(--spedire-text, #202223);
  --nd-control-muted: #717c81;
  --nd-control-border: var(--spedire-border, #e0e3e4);
  --nd-control-border-hover: color-mix(in srgb, var(--theme-primary, var(--theme-primary, #e61a0a)) 32%, var(--spedire-border, #e0e3e4));
  --nd-control-focus: var(--theme-primary, var(--theme-primary, #e61a0a));
  --nd-control-focus-ring: color-mix(in srgb, var(--theme-primary, var(--theme-primary, #e61a0a)) 14%, transparent);
  --nd-control-disabled-bg: color-mix(in srgb, var(--theme-bg, #fafaf9) 74%, #ffffff);
  --nd-control-height: 48px;
  --nd-control-height-sm: 40px;
  --nd-control-height-lg: 56px;
  --nd-control-radius: 0;
  --nd-control-font-size: 1rem;
  --nd-control-label-size: .84rem;
}

html[data-theme="dark"] body.nedate-ui-standard {
  --nd-control-bg: var(--dark-input-bg, #0b1220);
  --nd-control-text: var(--dark-text-color, var(--spedire-text, #e5e7eb));
  --nd-control-muted: var(--dark-muted-color, #94a3b8);
  --nd-control-border: var(--spedire-border, #334155);
  --nd-control-border-hover: color-mix(in srgb, var(--theme-primary, #fb7185) 36%, var(--spedire-border, #334155));
  --nd-control-focus: var(--theme-primary, #fb7185);
  --nd-control-focus-ring: color-mix(in srgb, var(--theme-primary, #fb7185) 18%, transparent);
  --nd-control-disabled-bg: color-mix(in srgb, var(--dark-input-bg, #0b1220) 82%, #000000);
}

/* Base controls: user + admin, native + Bootstrap. */
body.nedate-ui-standard .form-control,
body.nedate-ui-standard .form-select,
body.nedate-ui-standard textarea.form-control,
body.nedate-ui-standard .input-group-text,
body.nedate-ui-standard input[type="text"],
body.nedate-ui-standard input[type="email"],
body.nedate-ui-standard input[type="password"],
body.nedate-ui-standard input[type="number"],
body.nedate-ui-standard input[type="tel"],
body.nedate-ui-standard input[type="url"],
body.nedate-ui-standard input[type="search"],
body.nedate-ui-standard input[type="date"],
body.nedate-ui-standard input[type="datetime-local"],
body.nedate-ui-standard input[type="time"],
body.nedate-ui-standard input[type="month"],
body.nedate-ui-standard input[type="week"] {
  min-height: var(--nd-control-height);
  border-radius: var(--nd-control-radius) !important;
  border-color: var(--nd-control-border) !important;
  background-color: var(--nd-control-bg) !important;
  color: var(--nd-control-text) !important;
  font-family: var(--theme-font-base, var(--spedire-font-base, "IBM Plex Sans", Arial, "Helvetica Neue", Helvetica, "Segoe UI", sans-serif));
  font-size: var(--nd-control-font-size) !important;
  font-weight: 500 !important;
  line-height: 1.45;
  box-shadow: none !important;
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

@media (max-width: 768px) {
    .shipping-page-wrapper .form-control,
    .shipping-page-wrapper .form-select,
    .shipping-page-wrapper textarea.form-control,
    .shipping-page-wrapper .input-group-text,
    .shipping-page-wrapper input[type="text"],
    .shipping-page-wrapper input[type="email"],
    .shipping-page-wrapper input[type="password"],
    .shipping-page-wrapper input[type="number"],
    .shipping-page-wrapper input[type="tel"],
    .shipping-page-wrapper input[type="url"],
    .shipping-page-wrapper input[type="search"],
    .shipping-page-wrapper input[type="date"],
    .shipping-page-wrapper input[type="datetime-local"],
    .shipping-page-wrapper input[type="time"],
    .shipping-page-wrapper input[type="month"],
    .shipping-page-wrapper input[type="week"],
    .shipping-page-wrapper .form-floating > label,
    .shipping-page-wrapper .select2-container .select2-selection--single,
    .shipping-page-wrapper .select2-container .select2-selection__rendered,
    .shipping-page-wrapper .select2-container .select2-search__field {
        font-size: 16px !important; /* polish: avoid iOS zoom */
		padding: 1rem .95rem!important;
    }
}

.nedate-chat-input-row>textarea {
  min-height: unset !important;
}

body.nedate-ui-standard .form-control,
body.nedate-ui-standard textarea.form-control,
body.nedate-ui-standard input[type="text"],
body.nedate-ui-standard input[type="email"],
body.nedate-ui-standard input[type="password"],
body.nedate-ui-standard input[type="number"],
body.nedate-ui-standard input[type="tel"],
body.nedate-ui-standard input[type="url"],
body.nedate-ui-standard input[type="search"],
body.nedate-ui-standard input[type="date"],
body.nedate-ui-standard input[type="datetime-local"],
body.nedate-ui-standard input[type="time"],
body.nedate-ui-standard input[type="month"],
body.nedate-ui-standard input[type="week"] {
  padding: .78rem .95rem;
}

body.nedate-ui-standard .form-select {
  padding: .78rem 2.65rem .78rem .95rem;
}

body.nedate-ui-standard textarea.form-control {
  min-height: 112px;
  padding-top: .9rem;
  padding-bottom: .9rem;
}

body.nedate-ui-standard .form-control-sm,
body.nedate-ui-standard .form-select-sm,
body.nedate-ui-standard .input-group-sm > .form-control,
body.nedate-ui-standard .input-group-sm > .form-select,
body.nedate-ui-standard .input-group-sm > .input-group-text {
  min-height: var(--nd-control-height-sm);
  font-size: .92rem !important;
  padding-top: .48rem;
  padding-bottom: .48rem;
}

body.nedate-ui-standard .form-control-lg,
body.nedate-ui-standard .form-select-lg,
body.nedate-ui-standard .input-group-lg > .form-control,
body.nedate-ui-standard .input-group-lg > .form-select,
body.nedate-ui-standard .input-group-lg > .input-group-text {
  min-height: var(--nd-control-height-lg);
  font-size: 1.05rem !important;
}

body.nedate-ui-standard .form-control:hover,
body.nedate-ui-standard .form-select:hover,
body.nedate-ui-standard textarea.form-control:hover {
  border-color: var(--nd-control-border-hover) !important;
}

body.nedate-ui-standard .form-control:focus,
body.nedate-ui-standard .form-select:focus,
body.nedate-ui-standard textarea.form-control:focus {
  border-color: var(--nd-control-focus) !important;
  box-shadow: 0 0 0 .2rem var(--nd-control-focus-ring) !important;
  outline: 0;
}

body.nedate-ui-standard .form-control::placeholder,
body.nedate-ui-standard textarea.form-control::placeholder {
  color: color-mix(in srgb, var(--nd-control-muted) 70%, transparent);
  opacity: 1;
}

body.nedate-ui-standard .form-control:disabled,
body.nedate-ui-standard .form-select:disabled,
body.nedate-ui-standard textarea.form-control:disabled,
body.nedate-ui-standard .form-control[readonly] {
  background-color: var(--nd-control-disabled-bg) !important;
  color: color-mix(in srgb, var(--nd-control-text) 62%, transparent) !important;
  opacity: 1;
}

/* Floating labels: same look as shipping/import pages, applied also to auto-enhanced legacy forms. */
body.nedate-ui-standard .form-floating,
body.nedate-ui-standard .nedate-auto-floating {
  position: relative;
}

body.nedate-ui-standard .form-floating > .form-control,
body.nedate-ui-standard .form-floating > .form-select {
  min-height: 52px;
  height: calc(3.25rem + 2px);
  padding-top: 1.45rem!important;
  padding-bottom: .46rem;
}

body.nedate-ui-standard .form-floating > textarea.form-control {
  height: auto;
  min-height: 112px;
  padding-top: 1.65rem;
}

body.nedate-ui-standard .form-floating > label {
  color: #525252 !important;
  font-size: var(--nd-control-label-size);
  font-weight: 400 !important;
  padding: 1.20rem .95rem;
  opacity: .95;
  pointer-events: none;
  z-index: 2;
}

body.nedate-ui-standard .form-floating > label::after {
  background-color: transparent !important;
}

body.nedate-ui-standard .form-floating > .form-control:focus ~ label,
body.nedate-ui-standard .form-floating > .form-control:not(:placeholder-shown) ~ label,
body.nedate-ui-standard .form-floating > .form-select ~ label,
body.nedate-ui-standard .form-floating > .form-control-plaintext ~ label {
  color: #000 !important;
  opacity: .92;
  text-transform: uppercase;
}

body.nedate-ui-standard .form-floating > .form-control::placeholder {
  color: transparent !important;
}

/* Keep normal labels clean when a field cannot/should not be auto-floating. */
body.nedate-ui-standard .form-label {
  color: var(--nd-control-muted) !important;
  font-size: .92rem;
  font-weight: 700 !important;
  margin-bottom: .45rem;
}

body.nedate-ui-standard .form-text,
body.nedate-ui-standard .text-muted {
  color: color-mix(in srgb, var(--nd-control-muted) 86%, transparent) !important;
}

/* Input groups: square and compact; floating conversion intentionally skips them. */
body.nedate-ui-standard .input-group > .form-control,
body.nedate-ui-standard .input-group > .form-select,
body.nedate-ui-standard .input-group > .input-group-text,
body.nedate-ui-standard .input-group > .btn {
  border-radius: 0 !important;
}

body.nedate-ui-standard .input-group-text {
  background-color: color-mix(in srgb, var(--theme-bg, #fafaf9) 76%, #ffffff) !important;
  color: var(--nd-control-muted) !important;
  font-weight: 700;
}

html[data-theme="dark"] body.nedate-ui-standard .input-group-text {
  background-color: color-mix(in srgb, var(--dark-input-bg, #0b1220) 72%, #000000) !important;
}

/* Select2 / enhanced selects used in shipping and admin. */
body.nedate-ui-standard .select2-container .select2-selection--single,
body.nedate-ui-standard .select2-container .select2-selection--multiple {
  min-height: var(--nd-control-height);
  border-radius: 0 !important;
  border-color: var(--nd-control-border) !important;
  background-color: var(--nd-control-bg) !important;
  color: var(--nd-control-text) !important;
  box-shadow: none !important;
}

body.nedate-ui-standard .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--nd-control-text) !important;
  line-height: var(--nd-control-height);
  padding-left: .95rem;
  padding-right: 2.35rem;
}

body.nedate-ui-standard .select2-container--default .select2-selection--single .select2-selection__arrow {
  min-height: var(--nd-control-height);
  right: .45rem;
}

body.nedate-ui-standard .select2-container--default.select2-container--focus .select2-selection--single,
body.nedate-ui-standard .select2-container--default.select2-container--open .select2-selection--single,
body.nedate-ui-standard .select2-container--default.select2-container--focus .select2-selection--multiple,
body.nedate-ui-standard .select2-container--default.select2-container--open .select2-selection--multiple {
  border-color: var(--nd-control-focus) !important;
  box-shadow: 0 0 0 .2rem var(--nd-control-focus-ring) !important;
}

body.nedate-ui-standard .select2-dropdown {
  border-radius: 0 !important;
  border-color: var(--nd-control-border) !important;
}

/* Admin tables/filters often use compact controls. This keeps them readable without rounded legacy style. */
body.nedate-admin-ui .card-header .form-control,
body.nedate-admin-ui .card-header .form-select,
body.nedate-admin-ui .table .form-control,
body.nedate-admin-ui .table .form-select {
  min-height: 40px;
  font-size: .92rem !important;
}

/* Validation states stay Bootstrap-compatible but use theme tokens. */
body.nedate-ui-standard .form-control.is-invalid,
body.nedate-ui-standard .form-select.is-invalid,
body.nedate-ui-standard .was-validated .form-control:invalid,
body.nedate-ui-standard .was-validated .form-select:invalid {
  border-color: var(--bs-danger, #dc3545) !important;
}

body.nedate-ui-standard .form-control.is-valid,
body.nedate-ui-standard .form-select.is-valid,
body.nedate-ui-standard .was-validated .form-control:valid,
body.nedate-ui-standard .was-validated .form-select:valid {
  border-color: var(--bs-success, #198754) !important;
}

/* Opt-out utility for special controls/cards. */
body.nedate-ui-standard .nedate-no-standardize,
body.nedate-ui-standard .no-auto-floating {
  --nd-control-radius: inherit;
}
/* === NEDATE universal form controls v2 ===
 * Applies one shared input/select/textarea/radio/checkbox language to every
 * Blade rendered through the NEDATE layouts. Keep custom page CSS out of blades:
 * change colors, borders, radius and focus from the tokens below.
 */
body.nedate-ui-standard {
  --nd-form-font: var(--theme-font-base, var(--spedire-font-base, "IBM Plex Sans", Arial, 'Helvetica Neue', Helvetica, 'Segoe UI', sans-serif));
  --nd-form-primary: var(--theme-primary, var(--nd-brand-primary, var(--theme-primary, #e61a0a)));
  --nd-form-primary-soft: color-mix(in srgb, var(--nd-form-primary) 12%, transparent);
  --nd-form-bg: var(--nd-control-bg, #ffffff);
  --nd-form-text: var(--nd-control-text, var(--spedire-text, #202223));
  --nd-form-muted: var(--nd-control-muted, #717c81);
  --nd-form-border: var(--nd-control-border, var(--spedire-border, #e0e3e4));
  --nd-form-border-hover: var(--nd-control-border-hover, color-mix(in srgb, var(--nd-form-primary) 32%, var(--nd-form-border)));
  --nd-form-focus: var(--nd-control-focus, var(--nd-form-primary));
  --nd-form-focus-ring: var(--nd-control-focus-ring, color-mix(in srgb, var(--nd-form-primary) 14%, transparent));
  --nd-form-disabled-bg: var(--nd-control-disabled-bg, #f7f8fa);
  --nd-form-height: var(--nd-control-height, 48px);
  --nd-form-height-sm: var(--nd-control-height-sm, 40px);
  --nd-form-height-lg: var(--nd-control-height-lg, 56px);
  --nd-form-radius: var(--nd-control-radius, 0px);
  --nd-form-font-size: var(--nd-control-font-size, .95rem);
  --nd-form-label-size: var(--nd-control-label-size, .84rem);
  --nd-form-shadow: 0 10px 24px rgba(15, 23, 42, .035);
}

html[data-theme="dark"] body.nedate-ui-standard,
body.dark.nedate-ui-standard,
body.dark-mode.nedate-ui-standard {
  --nd-form-bg: var(--dark-input-bg, #0b1220);
  --nd-form-text: var(--dark-text-color, #e5e7eb);
  --nd-form-muted: var(--dark-muted-color, #94a3b8);
  --nd-form-border: var(--spedire-border, #334155);
  --nd-form-border-hover: color-mix(in srgb, var(--nd-form-primary) 36%, var(--nd-form-border));
  --nd-form-disabled-bg: color-mix(in srgb, var(--nd-form-bg) 82%, #000000);
  --nd-form-shadow: none;
}

body.nedate-ui-standard :is(form, input, select, textarea, button, label, .form-control, .form-select, .form-label, .form-check-label, .form-text, .invalid-feedback, .input-group-text) {
  font-family: var(--nd-form-font) !important;
}

body.nedate-ui-standard :is(
  input.form-control,
  select.form-select,
  textarea.form-control,
  .input-group-text,
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  input[type="tel"],
  input[type="url"],
  input[type="search"],
  input[type="date"],
  input[type="datetime-local"],
  input[type="time"],
  input[type="month"],
  input[type="week"],
  textarea:not(.form-control),
  select:not(.form-select)
):not(.nedate-no-standardize):not(.no-auto-floating):not(.select2-search__field) {
  min-height: var(--nd-form-height) !important;
  border: 1px solid var(--nd-form-border) !important;
  border-radius: var(--nd-form-radius) !important;
  background-color: var(--nd-form-bg) !important;
  color: var(--nd-form-text) !important;
  font-size: var(--nd-form-font-size) !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  box-shadow: var(--nd-form-shadow) !important;
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease, color .16s ease;
}

body.nedate-ui-standard :is(
  input.form-control,
  textarea.form-control,
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  input[type="tel"],
  input[type="url"],
  input[type="search"],
  input[type="date"],
  input[type="datetime-local"],
  input[type="time"],
  input[type="month"],
  input[type="week"],
  textarea:not(.form-control)
):not(.nedate-no-standardize):not(.no-auto-floating):not(.select2-search__field) {
  padding: .78rem .95rem !important;
}

body.nedate-ui-standard :is(select.form-select, select:not(.form-select)):not([multiple]):not([size]):not(.nedate-no-standardize):not(.no-auto-floating) {
  padding: .78rem 2.65rem .78rem .95rem !important;
}

body.nedate-ui-standard :is(select.form-select, select:not(.form-select))[multiple],
body.nedate-ui-standard :is(select.form-select, select:not(.form-select))[size]:not([size="1"]) {
  min-height: auto !important;
  padding: .65rem .85rem !important;
}

body.nedate-ui-standard :is(textarea.form-control, textarea:not(.form-control)):not(.nedate-no-standardize):not(.no-auto-floating) {
  min-height: 112px !important;
  resize: vertical;
}

body.nedate-ui-standard :is(.form-control-sm, .form-select-sm, .input-group-sm > .form-control, .input-group-sm > .form-select, .input-group-sm > .input-group-text) {
  min-height: var(--nd-form-height-sm) !important;
  font-size: .88rem !important;
  padding-top: .48rem !important;
  padding-bottom: .48rem !important;
}

body.nedate-ui-standard :is(.form-control-lg, .form-select-lg, .input-group-lg > .form-control, .input-group-lg > .form-select, .input-group-lg > .input-group-text) {
  min-height: var(--nd-form-height-lg) !important;
  font-size: 1.02rem !important;
}

body.nedate-ui-standard :is(
  input.form-control,
  select.form-select,
  textarea.form-control,
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  input[type="tel"],
  input[type="url"],
  input[type="search"],
  input[type="date"],
  input[type="datetime-local"],
  input[type="time"],
  input[type="month"],
  input[type="week"],
  textarea:not(.form-control),
  select:not(.form-select)
):not(.nedate-no-standardize):not(.no-auto-floating):not(.select2-search__field):hover {
  border-color: var(--nd-form-border-hover) !important;
}

body.nedate-ui-standard :is(
  input.form-control,
  select.form-select,
  textarea.form-control,
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  input[type="tel"],
  input[type="url"],
  input[type="search"],
  input[type="date"],
  input[type="datetime-local"],
  input[type="time"],
  input[type="month"],
  input[type="week"],
  textarea:not(.form-control),
  select:not(.form-select)
):not(.nedate-no-standardize):not(.no-auto-floating):not(.select2-search__field):focus {
  border-color: var(--nd-form-focus) !important;
  box-shadow: 0 0 0 .2rem var(--nd-form-focus-ring) !important;
  outline: 0 !important;
}

body.nedate-ui-standard :is(input.form-control, textarea.form-control, textarea:not(.form-control))::placeholder,
body.nedate-ui-standard :is(input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="tel"], input[type="url"], input[type="search"])::placeholder {
  color: color-mix(in srgb, var(--nd-form-muted) 70%, transparent) !important;
  opacity: 1 !important;
}

body.nedate-ui-standard :is(.form-control, .form-select, input, select, textarea):disabled,
body.nedate-ui-standard :is(.form-control, input, textarea)[readonly] {
  background-color: var(--nd-form-disabled-bg) !important;
  color: color-mix(in srgb, var(--nd-form-text) 62%, transparent) !important;
  opacity: 1 !important;
  cursor: not-allowed;
}

body.nedate-ui-standard input[type="file"].form-control {
  padding: .48rem .75rem !important;
}

body.nedate-ui-standard input[type="file"].form-control::file-selector-button {
  min-height: 40px;
  margin: -.48rem .85rem -.48rem -.75rem;
  padding: 0 .95rem;
  border: 0;
  border-right: 1px solid var(--nd-form-border);
  background: color-mix(in srgb, var(--theme-bg, #fafaf9) 76%, #ffffff);
  color: var(--nd-form-text);
  font-weight: var(--sw-weight-bold, 700);
}

body.nedate-ui-standard .form-label,
body.nedate-ui-standard label.form-label {
  color: var(--nd-form-muted) !important;
  font-size: .9rem !important;
  font-weight: 700 !important;
  line-height: 1.35;
  margin-bottom: .45rem;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

body.nedate-ui-standard .form-text {
  color: color-mix(in srgb, var(--nd-form-muted) 86%, transparent) !important;
  font-size: .82rem !important;
  font-weight: 600 !important;
}

body.nedate-ui-standard .invalid-feedback {
  color: var(--bs-danger, #dc3545) !important;
  font-size: .82rem !important;
  font-weight: 600 !important;
}

body.nedate-ui-standard :is(.form-control, .form-select, input, textarea, select).is-invalid,
body.nedate-ui-standard .was-validated :is(.form-control, .form-select, input, textarea, select):invalid {
  border-color: var(--bs-danger, #dc3545) !important;
  box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .08) !important;
}

body.nedate-ui-standard :is(.form-control, .form-select, input, textarea, select).is-valid,
body.nedate-ui-standard .was-validated :is(.form-control, .form-select, input, textarea, select):valid {
  border-color: var(--bs-success, #198754) !important;
}

body.nedate-ui-standard .form-check,
body.nedate-ui-standard .form-switch {
  min-height: 1.35rem;
}

body.nedate-ui-standard .form-check-input,
body.nedate-ui-standard input[type="checkbox"],
body.nedate-ui-standard input[type="radio"] {
  width: 1.08rem !important;
  height: 1.08rem !important;
  min-height: 1.08rem !important;
  border: 1.5px solid var(--nd-form-border) !important;
  border-radius: calc(var(--nd-form-radius) + 2px) !important;
  background-color: var(--nd-form-bg) !important;
  box-shadow: none !important;
  cursor: pointer;
  accent-color: var(--nd-form-primary);
}

body.nedate-ui-standard input[type="radio"],
body.nedate-ui-standard .form-check-input[type="radio"] {
  border-radius: 50% !important;
}

body.nedate-ui-standard .form-check-input:checked,
body.nedate-ui-standard input[type="checkbox"]:checked,
body.nedate-ui-standard input[type="radio"]:checked {
  background-color: var(--nd-form-primary) !important;
  border-color: var(--nd-form-primary) !important;
}

body.nedate-ui-standard .form-check-input:focus,
body.nedate-ui-standard input[type="checkbox"]:focus,
body.nedate-ui-standard input[type="radio"]:focus {
  border-color: var(--nd-form-focus) !important;
  box-shadow: 0 0 0 .2rem var(--nd-form-focus-ring) !important;
  outline: 0 !important;
}

body.nedate-ui-standard .form-check-input:disabled,
body.nedate-ui-standard input[type="checkbox"]:disabled,
body.nedate-ui-standard input[type="radio"]:disabled {
  opacity: .55 !important;
  cursor: not-allowed;
}

body.nedate-ui-standard .form-check-label {
  color: var(--nd-form-text) !important;
  font-size: .9rem !important;
  font-weight: 650 !important;
  cursor: pointer;
}

body.nedate-ui-standard .input-group > :is(.form-control, .form-select, .input-group-text, .btn) {
  border-radius: var(--nd-form-radius) !important;
}

body.nedate-ui-standard .select2-container .select2-selection--single,
body.nedate-ui-standard .select2-container .select2-selection--multiple {
  min-height: var(--nd-form-height) !important;
  border-radius: var(--nd-form-radius) !important;
  border-color: var(--nd-form-border) !important;
  background-color: var(--nd-form-bg) !important;
  color: var(--nd-form-text) !important;
  box-shadow: var(--nd-form-shadow) !important;
}

body.nedate-ui-standard .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--nd-form-text) !important;
  line-height: var(--nd-form-height) !important;
}

@media (max-width: 768px) {
  body.nedate-ui-standard :is(.form-control, .form-select, input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="tel"], input[type="url"], input[type="search"], input[type="date"], input[type="datetime-local"], input[type="time"], textarea, select) {
    font-size: 16px !important; /* polish: avoid iOS zoom */
  }
}

/* === NEDATE SHIPPING-DERIVED UNIVERSAL FORM STANDARD 2026-06-06 ===
 * /shipping is now the visual source of truth for every form control.
 * Change these tokens once and input/select/textarea/checkbox/radio/file/Select2
 * update across public, user and admin blades.
 */
body.nedate-ui-standard {
  --nd-form-standard-primary: var(--theme-primary, var(--nd-brand-primary, #ff2b24));
  --nd-form-standard-text: var(--ship-navy, var(--nd-brand-heading, #14274a));
  --nd-form-standard-muted: var(--ship-muted, var(--nd-brand-muted, #667795));
  --nd-form-standard-bg: rgba(255, 255, 255, .94);
  --nd-form-standard-border: rgba(20, 39, 74, .14);
  --nd-form-standard-border-hover: color-mix(in srgb, var(--nd-form-standard-primary) 34%, var(--nd-form-standard-border));
  --nd-form-standard-focus: var(--nd-form-standard-primary);
  --nd-form-standard-focus-ring: color-mix(in srgb, var(--nd-form-standard-primary) 15%, transparent);
  --nd-form-standard-shadow: 0 8px 18px rgba(20, 39, 74, .03);
  --nd-form-standard-height: 52px;
  --nd-form-standard-floating-height: calc(3.5rem + 2px);
  --nd-form-standard-height-sm: 42px;
  --nd-form-standard-height-lg: 58px;
  --nd-form-standard-radius: 9px;
  --nd-form-standard-padding-x: .95rem;
  --nd-form-standard-font-size: .95rem;
  --nd-form-standard-label-size: .78rem;
  --nd-form-standard-label-weight: 800;

  /* Backward aliases used by older pages. */
  --nd-control-bg: var(--nd-form-standard-bg);
  --nd-control-text: var(--nd-form-standard-text);
  --nd-control-muted: var(--nd-form-standard-muted);
  --nd-control-border: var(--nd-form-standard-border);
  --nd-control-border-hover: var(--nd-form-standard-border-hover);
  --nd-control-focus: var(--nd-form-standard-focus);
  --nd-control-focus-ring: var(--nd-form-standard-focus-ring);
  --nd-control-height: var(--nd-form-standard-height);
  --nd-control-height-sm: var(--nd-form-standard-height-sm);
  --nd-control-height-lg: var(--nd-form-standard-height-lg);
  --nd-control-radius: var(--nd-form-standard-radius);
  --nd-control-font-size: var(--nd-form-standard-font-size);
  --nd-control-label-size: var(--nd-form-standard-label-size);

  --nd-form-bg: var(--nd-form-standard-bg);
  --nd-form-text: var(--nd-form-standard-text);
  --nd-form-muted: var(--nd-form-standard-muted);
  --nd-form-border: var(--nd-form-standard-border);
  --nd-form-border-hover: var(--nd-form-standard-border-hover);
  --nd-form-focus: var(--nd-form-standard-focus);
  --nd-form-focus-ring: var(--nd-form-standard-focus-ring);
  --nd-form-height: var(--nd-form-standard-height);
  --nd-form-height-sm: var(--nd-form-standard-height-sm);
  --nd-form-height-lg: var(--nd-form-standard-height-lg);
  --nd-form-radius: var(--nd-form-standard-radius);
  --nd-form-font-size: var(--nd-form-standard-font-size);
  --nd-form-label-size: var(--nd-form-standard-label-size);
  --nd-form-shadow: var(--nd-form-standard-shadow);
}

html[data-theme="dark"] body.nedate-ui-standard,
html[data-bs-theme="dark"] body.nedate-ui-standard,
body.dark.nedate-ui-standard,
body.dark-mode.nedate-ui-standard {
  --nd-form-standard-text: var(--spedire-text, var(--nd-dark-text, #e5e7eb));
  --nd-form-standard-muted: var(--dark-muted-color, var(--nd-dark-muted, #94a3b8));
  --nd-form-standard-bg: var(--dark-input-bg, #0b1220);
  --nd-form-standard-border: var(--spedire-border, #334155);
  --nd-form-standard-border-hover: color-mix(in srgb, var(--nd-form-standard-primary) 38%, var(--nd-form-standard-border));
  --nd-form-standard-focus-ring: color-mix(in srgb, var(--nd-form-standard-primary) 18%, transparent);
  --nd-form-standard-shadow: none;
}

body.nedate-ui-standard :is(form, input, select, textarea, label, .form-control, .form-select, .form-label, .form-check-label, .form-text, .invalid-feedback, .input-group-text, .select2-container) {
  font-family: var(--theme-font-base, var(--spedire-font-base, "IBM Plex Sans", Arial, "Helvetica Neue", Helvetica, "Segoe UI", sans-serif)) !important;
}

body.nedate-ui-standard :is(
  input.form-control,
  select.form-select,
  textarea.form-control,
  .form-control,
  .form-select,
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  input[type="tel"],
  input[type="url"],
  input[type="search"],
  input[type="date"],
  input[type="datetime-local"],
  input[type="time"],
  input[type="month"],
  input[type="week"],
  select:not(.form-select),
  textarea:not(.form-control),
  .input-group-text
):not(.form-check-input):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not(.select2-search__field):not(.nedate-no-standardize):not(.no-auto-floating) {
  min-height: var(--nd-form-standard-height) !important;
  border: 1px solid var(--nd-form-standard-border) !important;
  border-radius: var(--nd-form-standard-radius) !important;
  background-color: var(--nd-form-standard-bg) !important;
  color: var(--nd-form-standard-text) !important;
  font-size: var(--nd-form-standard-font-size) !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  box-shadow: var(--nd-form-standard-shadow) !important;
  outline: 0 !important;
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease, color .16s ease;
}

body.nedate-ui-standard :is(
  input.form-control,
  textarea.form-control,
  .form-control,
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  input[type="tel"],
  input[type="url"],
  input[type="search"],
  input[type="date"],
  input[type="datetime-local"],
  input[type="time"],
  input[type="month"],
  input[type="week"],
  textarea:not(.form-control)
):not(.form-check-input):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="file"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not(.select2-search__field):not(.nedate-no-standardize):not(.no-auto-floating) {
  padding: .78rem var(--nd-form-standard-padding-x) !important;
}

body.nedate-ui-standard :is(select.form-select, .form-select, select:not(.form-select)):not([multiple]):not([size]):not(.nedate-no-standardize):not(.no-auto-floating) {
  padding: .78rem 2.65rem .78rem var(--nd-form-standard-padding-x) !important;
  background-position: right .95rem center !important;
}

body.nedate-ui-standard :is(select.form-select, select:not(.form-select))[multiple],
body.nedate-ui-standard :is(select.form-select, select:not(.form-select))[size]:not([size="1"]) {
  min-height: auto !important;
  padding: .65rem .85rem !important;
}

body.nedate-ui-standard :is(textarea.form-control, textarea:not(.form-control)):not(.nedate-no-standardize):not(.no-auto-floating) {
  min-height: 112px !important;
  padding-top: .9rem !important;
  padding-bottom: .9rem !important;
  resize: vertical;
}

body.nedate-ui-standard :is(
  input.form-control,
  select.form-select,
  textarea.form-control,
  .form-control,
  .form-select,
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  input[type="tel"],
  input[type="url"],
  input[type="search"],
  input[type="date"],
  input[type="datetime-local"],
  input[type="time"],
  input[type="month"],
  input[type="week"],
  select:not(.form-select),
  textarea:not(.form-control)
):not(.form-check-input):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not(.select2-search__field):not(.nedate-no-standardize):not(.no-auto-floating):hover {
  border-color: var(--nd-form-standard-border-hover) !important;
}

body.nedate-ui-standard :is(
  input.form-control,
  select.form-select,
  textarea.form-control,
  .form-control,
  .form-select,
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  input[type="tel"],
  input[type="url"],
  input[type="search"],
  input[type="date"],
  input[type="datetime-local"],
  input[type="time"],
  input[type="month"],
  input[type="week"],
  select:not(.form-select),
  textarea:not(.form-control)
):not(.form-check-input):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not(.select2-search__field):not(.nedate-no-standardize):not(.no-auto-floating):focus {
  border-color: var(--nd-form-standard-focus) !important;
  box-shadow: 0 0 0 .2rem var(--nd-form-standard-focus-ring) !important;
}

body.nedate-ui-standard :is(.form-control, input, textarea)::placeholder {
  color: color-mix(in srgb, var(--nd-form-standard-muted) 72%, transparent) !important;
  opacity: 1 !important;
}

body.nedate-ui-standard :is(.form-label, label.form-label, .form-floating > label, .select2-floating > label) {
  color: var(--nd-form-standard-muted) !important;
  font-size: var(--nd-form-standard-label-size) !important;
  font-weight: var(--nd-form-standard-label-weight) !important;
  letter-spacing: .015em !important;
  line-height: 1.25 !important;
}

body.nedate-ui-standard .form-floating > :is(.form-control, .form-select) {
  height: var(--nd-form-standard-floating-height) !important;
  min-height: var(--nd-form-standard-floating-height) !important;
}

body.nedate-ui-standard .form-floating > :is(.form-control, .form-select):not(textarea) {
  padding-top: 1.45rem !important;
  padding-bottom: .55rem !important;
}

body.nedate-ui-standard .form-floating > textarea.form-control {
  height: auto !important;
  min-height: 112px !important;
}

body.nedate-ui-standard .form-floating > label::after,
body.nedate-ui-standard .select2-floating > label::after,
body.nedate-ui-standard .form-floating > .form-select ~ label::after {
  background: transparent !important;
  content: none !important;
  display: none !important;
}

html[data-theme="dark"] body.nedate-ui-standard :is(.form-floating > label, .select2-floating > label),
html[data-bs-theme="dark"] body.nedate-ui-standard :is(.form-floating > label, .select2-floating > label),
body.dark-mode.nedate-ui-standard :is(.form-floating > label, .select2-floating > label),
body.dark.nedate-ui-standard :is(.form-floating > label, .select2-floating > label) {
  background-color: transparent !important;
  color: var(--nd-form-standard-muted) !important;
}

body.nedate-ui-standard input[type="file"].form-control {
  padding: .48rem .75rem !important;
}

body.nedate-ui-standard input[type="file"].form-control::file-selector-button {
  min-height: 40px;
  margin: -.48rem .85rem -.48rem -.75rem;
  padding: 0 .95rem;
  border: 0;
  border-right: 1px solid var(--nd-form-standard-border);
  background: color-mix(in srgb, var(--nd-form-standard-bg) 78%, var(--nd-form-standard-text) 4%);
  color: var(--nd-form-standard-text);
  font-weight: var(--sw-weight-bold, 700);
}

body.nedate-ui-standard :is(.form-control, .form-select, input, select, textarea):disabled,
body.nedate-ui-standard :is(.form-control, input, textarea)[readonly] {
  background-color: color-mix(in srgb, var(--nd-form-standard-bg) 82%, var(--nd-form-standard-text) 4%) !important;
  color: color-mix(in srgb, var(--nd-form-standard-text) 62%, transparent) !important;
  opacity: 1 !important;
  cursor: not-allowed;
}

body.nedate-ui-standard .form-text,
body.nedate-ui-standard .invalid-feedback,
body.nedate-ui-standard .valid-feedback {
  font-size: .82rem !important;
  font-weight: 600 !important;
}

body.nedate-ui-standard .form-text {
  color: color-mix(in srgb, var(--nd-form-standard-muted) 86%, transparent) !important;
}

body.nedate-ui-standard .invalid-feedback {
  color: var(--bs-danger, #dc3545) !important;
}

body.nedate-ui-standard .form-check-input,
body.nedate-ui-standard input[type="checkbox"],
body.nedate-ui-standard input[type="radio"] {
  width: 1.08rem !important;
  height: 1.08rem !important;
  min-height: 1.08rem !important;
  border: 1.5px solid var(--nd-form-standard-border) !important;
  border-radius: 6px !important;
  background-color: var(--nd-form-standard-bg) !important;
  box-shadow: none !important;
  cursor: pointer;
  accent-color: var(--nd-form-standard-primary);
}

body.nedate-ui-standard input[type="radio"],
body.nedate-ui-standard .form-check-input[type="radio"] {
  border-radius: 50% !important;
}

body.nedate-ui-standard .form-check-input:checked,
body.nedate-ui-standard input[type="checkbox"]:checked,
body.nedate-ui-standard input[type="radio"]:checked {
  background-color: var(--nd-form-standard-primary) !important;
  border-color: var(--nd-form-standard-primary) !important;
}

body.nedate-ui-standard .form-check-input:focus,
body.nedate-ui-standard input[type="checkbox"]:focus,
body.nedate-ui-standard input[type="radio"]:focus {
  border-color: var(--nd-form-standard-focus) !important;
  box-shadow: 0 0 0 .2rem var(--nd-form-standard-focus-ring) !important;
}

body.nedate-ui-standard .form-check-label {
  color: var(--nd-form-standard-text) !important;
  font-size: .9rem !important;
  font-weight: 650 !important;
}

body.nedate-ui-standard .input-group > :is(.form-control, .form-select, .input-group-text, .btn) {
  min-height: var(--nd-form-standard-height) !important;
}

body.nedate-ui-standard .input-group > :not(:first-child):not(.dropdown-menu) {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
}

body.nedate-ui-standard .input-group > :not(:last-child):not(.dropdown-menu) {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

body.nedate-ui-standard .input-group-text {
  background-color: var(--nd-form-standard-bg) !important;
  color: var(--nd-form-standard-muted) !important;
  font-weight: 700 !important;
}

body.nedate-ui-standard :is(.select2-container--default, .select2-container--bootstrap-5) :is(.select2-selection--single, .select2-selection--multiple),
body.nedate-ui-standard .select2-container :is(.select2-selection--single, .select2-selection--multiple) {
  min-height: var(--nd-form-standard-height) !important;
  border: 1px solid var(--nd-form-standard-border) !important;
  border-radius: var(--nd-form-standard-radius) !important;
  background-color: var(--nd-form-standard-bg) !important;
  background-image: none !important;
  color: var(--nd-form-standard-text) !important;
  box-shadow: var(--nd-form-standard-shadow) !important;
}

body.nedate-ui-standard .select2-floating :is(.select2-selection--single, .select2-selection--multiple) {
  min-height: var(--nd-form-standard-floating-height) !important;
}

body.nedate-ui-standard :is(.select2-container--default, .select2-container--bootstrap-5) .select2-selection--single .select2-selection__rendered {
  color: var(--nd-form-standard-text) !important;
  line-height: var(--nd-form-standard-height) !important;
  padding-left: var(--nd-form-standard-padding-x) !important;
  padding-right: 2.35rem !important;
}

body.nedate-ui-standard .select2-floating :is(.select2-selection--single) .select2-selection__rendered {
  line-height: var(--nd-form-standard-floating-height) !important;
}

body.nedate-ui-standard :is(.select2-container--default, .select2-container--bootstrap-5) .select2-selection--single .select2-selection__arrow {
  min-height: var(--nd-form-standard-height) !important;
  right: .45rem !important;
}

body.nedate-ui-standard .select2-container--open :is(.select2-selection--single, .select2-selection--multiple),
body.nedate-ui-standard .select2-container--focus :is(.select2-selection--single, .select2-selection--multiple) {
  border-color: var(--nd-form-standard-focus) !important;
  box-shadow: 0 0 0 .2rem var(--nd-form-standard-focus-ring) !important;
}

body.nedate-ui-standard .select2-dropdown {
  border: 1px solid var(--nd-form-standard-border) !important;
  border-radius: var(--nd-form-standard-radius) !important;
  background-color: var(--nd-form-standard-bg) !important;
  color: var(--nd-form-standard-text) !important;
  box-shadow: 0 16px 34px rgba(15, 23, 42, .14) !important;
  overflow: hidden;
}

body.nedate-ui-standard .select2-dropdown .select2-search__field {
  min-height: 42px !important;
  border: 1px solid var(--nd-form-standard-border) !important;
  border-radius: var(--nd-form-standard-radius) !important;
  background: var(--nd-form-standard-bg) !important;
  color: var(--nd-form-standard-text) !important;
}

body.nedate-ui-standard .select2-results__option {
  color: var(--nd-form-standard-text) !important;
}

body.nedate-ui-standard .select2-container--default .select2-results__option--highlighted[aria-selected],
body.nedate-ui-standard .select2-container--bootstrap-5 .select2-results__option--highlighted[aria-selected] {
  background-color: var(--nd-form-standard-primary) !important;
  color: #fff !important;
}

body.nedate-ui-standard :is(.form-control, .form-select, input, textarea, select).is-invalid,
body.nedate-ui-standard .was-validated :is(.form-control, .form-select, input, textarea, select):invalid {
  border-color: var(--bs-danger, #dc3545) !important;
  box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .08) !important;
}

body.nedate-ui-standard :is(.form-control, .form-select, input, textarea, select).is-valid,
body.nedate-ui-standard .was-validated :is(.form-control, .form-select, input, textarea, select):valid {
  border-color: var(--bs-success, #198754) !important;
}

body.nedate-ui-standard :is(.form-control-sm, .form-select-sm, .input-group-sm > .form-control, .input-group-sm > .form-select, .input-group-sm > .input-group-text) {
  min-height: var(--nd-form-standard-height-sm) !important;
  font-size: .88rem !important;
  padding-top: .48rem !important;
  padding-bottom: .48rem !important;
}

body.nedate-ui-standard :is(.form-control-lg, .form-select-lg, .input-group-lg > .form-control, .input-group-lg > .form-select, .input-group-lg > .input-group-text) {
  min-height: var(--nd-form-standard-height-lg) !important;
  font-size: 1.02rem !important;
}

/* Special shipping-style unit suffixes can now be used anywhere, not only /shipping. */
body.nedate-ui-standard .form-floating.ship-input-with-unit.position-relative {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: var(--nd-form-standard-floating-height) !important;
  width: 100% !important;
  max-width: 100% !important;
  position: relative !important;
  box-sizing: border-box !important;
}

body.nedate-ui-standard .form-floating.ship-input-with-unit.position-relative > .form-control.pe-unit {
  grid-column: 1 / -1 !important;
  grid-row: 1 !important;
  width: 100% !important;
  max-width: 100% !important;
  padding-right: 3.35rem !important;
}

body.nedate-ui-standard .form-floating.ship-input-with-unit.position-relative > label {
  grid-column: 1 / -1 !important;
  grid-row: 1 !important;
}

body.nedate-ui-standard .form-floating.ship-input-with-unit.position-relative .input-unit {
  grid-column: 1 !important;
  grid-row: 1 !important;
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: auto !important;
  width: 2.65rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background-color: var(--nd-form-standard-bg) !important;
  box-shadow: inset 1px 0 0 var(--nd-form-standard-border) !important;
  color: var(--nd-form-standard-muted) !important;
  font-weight: 600 !important;
  font-size: .8125rem !important;
  line-height: 1 !important;
  z-index: 6 !important;
  pointer-events: none !important;
  border: 0 !important;
  border-radius: 0 !important;
}

@media (max-width: 768px) {
  body.nedate-ui-standard :is(
    .form-control,
    .form-select,
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="number"],
    input[type="tel"],
    input[type="url"],
    input[type="search"],
    input[type="date"],
    input[type="datetime-local"],
    input[type="time"],
    textarea,
    select,
    .form-floating > label,
    .select2-container .select2-selection__rendered,
    .select2-container .select2-search__field
  ) {
    font-size: 16px !important; /* polish: avoid iOS zoom */
  }
}


html[data-theme="dark"] body.nedate-ui-standard :is(input, select, textarea, .form-control, .form-select),
html[data-bs-theme="dark"] body.nedate-ui-standard :is(input, select, textarea, .form-control, .form-select),
body.dark-mode.nedate-ui-standard :is(input, select, textarea, .form-control, .form-select),
body.dark.nedate-ui-standard :is(input, select, textarea, .form-control, .form-select) {
  color-scheme: dark;
}

html[data-theme="dark"] body.nedate-ui-standard select option,
html[data-bs-theme="dark"] body.nedate-ui-standard select option,
body.dark-mode.nedate-ui-standard select option,
body.dark.nedate-ui-standard select option {
  background-color: var(--nd-form-standard-bg) !important;
  color: var(--nd-form-standard-text) !important;
}

/* === END NEDATE SHIPPING-DERIVED UNIVERSAL FORM STANDARD === */



/* Empty validation feedback must never render its decorative error icon.
   Shared rule for every SpedireWeb form component using .invalid-feedback. */
body.nedate-ui-standard .invalid-feedback:empty {
  display: none !important;
}

body.nedate-ui-standard .invalid-feedback:empty::before {
  content: none !important;
  display: none !important;
}
