/* Shared Vhuiwu input focus policy: a quiet grey border, no coloured halo.
   Validation colours and keyboard focus on buttons/links remain independent. */
:root { --vh-input-focus-border: #b8b8b8; }

:is(input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]), textarea, select, [contenteditable="true"][role="textbox"]):is(:focus, :focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}

:is(input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]), textarea, select):is(:focus, :focus-visible):not([aria-invalid="true"]):not([class*="-status-error"]):not([class*="-status-warning"]):not(.error):not(:is(.ant-form-item-has-error, .ant-form-item-has-warning) *) {
  border-color: var(--vh-input-focus-border) !important;
}

:is(.ant-input-affix-wrapper-focused, .ant-input-affix-wrapper:focus-within, .ant-input-number-focused, .ant-input-number-affix-wrapper-focused, .ant-picker-focused, .ant-select-focused .ant-select-selector) {
  outline: none !important;
  box-shadow: none !important;
}

:is(.ant-input-affix-wrapper-focused, .ant-input-affix-wrapper:focus-within, .ant-input-number-focused, .ant-input-number-affix-wrapper-focused, .ant-picker-focused):not([class*="-status-error"]):not([class*="-status-warning"]):not(:is(.ant-form-item-has-error, .ant-form-item-has-warning) *),
.ant-select-focused:not(.ant-select-status-error):not(.ant-select-status-warning):not(:is(.ant-form-item-has-error, .ant-form-item-has-warning) *) .ant-select-selector {
  border-color: var(--vh-input-focus-border) !important;
}

/* Legacy admin login has a more specific important focus rule. */
html body .admin-login-card .ant-input-affix-wrapper:focus-within {
  outline: none !important;
  box-shadow: none !important;
}
