/* Shared final theme layer for public, authentication, customer and admin pages. */
:root, html[data-theme="light"] {
  --text-primary: #142341;
  --text-secondary: #33435e;
  --text-muted: #4b5d78;
  --text-disabled: #52627a;
  --border: #71829c;
  --border-strong: #526782;
  --border-focus: #1c397d;
  --contrast-control-bg: #ffffff;
  --contrast-control-text: #142341;
  --contrast-disabled-bg: #e5ecf5;
  --contrast-disabled-text: #43536d;
  --contrast-on-primary: #ffffff;
  --contrast-on-danger: #ffffff;
  --theme-on-primary: var(--contrast-on-primary);
}
html[data-theme="dark"] {
  --text-primary: #f5f8ff;
  --text-secondary: #dce6f7;
  --text-muted: #bdcce2;
  --text-disabled: #adbed8;
  --border: #8196b6;
  --border-strong: #a0b4d1;
  --border-focus: #aac8ff;
  --contrast-control-bg: #101b31;
  --contrast-control-text: #f5f8ff;
  --contrast-disabled-bg: #25385b;
  --contrast-disabled-text: #dce6f7;
  --contrast-on-primary: #08152e;
  --contrast-on-danger: #08152e;
  --theme-on-primary: var(--contrast-on-primary);
}
body :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]), select, textarea) {
  color: var(--contrast-control-text);
  background-color: var(--contrast-control-bg);
  border-color: var(--border);
  caret-color: var(--contrast-control-text);
  -webkit-text-fill-color: var(--contrast-control-text);
}
body :is(input, textarea)::placeholder {
  color: var(--text-muted);
  opacity: 1;
  -webkit-text-fill-color: var(--text-muted);
}
body :is(input, select, textarea):disabled,
body :is(button, .ui-button, .backoffice-button, .catalogue-button):disabled {
  opacity: 1;
  color: var(--contrast-disabled-text);
  -webkit-text-fill-color: var(--contrast-disabled-text);
  background: var(--contrast-disabled-bg);
  border-color: var(--border);
}
body :is(input[type="checkbox"], input[type="radio"]) {
  accent-color: var(--primary);
  outline-color: var(--border);
}
body :is(a, button, input, select, textarea):focus-visible {
  outline: 3px solid var(--border-focus);
  outline-offset: 3px;
}
body :is(.ui-button--primary, .backoffice-button-primary, .backoffice-button--primary, .catalogue-button.is-primary, .pf-primary) {
  background: var(--primary);
  color: var(--contrast-on-primary);
}
body :is(.ui-button--danger, .backoffice-button-danger, .backoffice-button--danger) {
  background: var(--danger);
  color: var(--contrast-on-danger);
}
body .bo-autosave-status {
  color: var(--text-primary);
  background: var(--surface-muted);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 16px;
  line-height: 1.5;
}
body .ui-button:disabled,
body .ui-button[aria-disabled="true"],
body .ui-button.is-disabled,
body .auth-primary-button:disabled,
body .auth-secondary-button:disabled {
  --ui-button-bg: var(--contrast-disabled-bg);
  --ui-button-text: var(--contrast-disabled-text);
  --ui-button-border: var(--border);
  --ui-button-hover: var(--contrast-disabled-bg);
  opacity: 1;
  background: var(--contrast-disabled-bg);
  color: var(--contrast-disabled-text);
  border-color: var(--border);
}
body :is(.errorlist, .field-error, .form-error) {
  color: var(--danger-text);
}
@media (forced-colors: active) {
  body :is(input, select, textarea, button) { border: 1px solid ButtonText; }
}
