/* OmniVenta V62.34 — optimized CSS-only global action/button contrast layer.
   Loaded after every light/dark theme and responsive layer.
   Goal: controls must remain readable across all bundled themes, desktop and mobile.
*/

/* Base action readability */
.btn,
button.btn,
input[type="button"].btn,
input[type="submit"].btn,
input[type="reset"].btn,
.btn-pay,
.select-payment,
.register-btn,
.editable-submit,
.editable-cancel {
  font-weight: 600 !important;
  text-shadow: none !important;
  -webkit-font-smoothing: antialiased;
}

/* Strong/filled semantic buttons always need light foreground text. */
.btn-primary,.btn-info,.btn-success,.btn-warning,.btn-danger,
.btn-green,.btn-orange,.btn-red,.btn-black,.btn-gray,
.btn-primary:hover,.btn-primary:focus,.btn-primary:active,
.btn-info:hover,.btn-info:focus,.btn-info:active,
.btn-success:hover,.btn-success:focus,.btn-success:active,
.btn-warning:hover,.btn-warning:focus,.btn-warning:active,
.btn-danger:hover,.btn-danger:focus,.btn-danger:active,
.btn-green:hover,.btn-orange:hover,.btn-red:hover,.btn-black:hover,.btn-gray:hover,
.btn-green:focus,.btn-orange:focus,.btn-red:focus,.btn-black:focus,.btn-gray:focus {
  color:#fff !important;
}
.btn-primary *, .btn-info *, .btn-success *, .btn-warning *, .btn-danger *,
.btn-green *, .btn-orange *, .btn-red *, .btn-black *, .btn-gray * {
  color:inherit !important;
}

/* Neutral/light buttons retain a dark readable foreground. */
.btn-default:not(.active),.btn-white:not(.active),
.btn-default:not(.active):hover,.btn-default:not(.active):focus,
.btn-white:not(.active):hover,.btn-white:not(.active):focus {
  color:#28313d !important;
}
.btn-default:not(.active) *, .btn-white:not(.active) * { color:inherit !important; }

/* Register actions were being recolored with the theme primary text on green/filled buttons. */
#add_payment_button.btn-success,
#finish_sale_button,
#finish_sale_alternate_button,
.complete-sale,
.complete-receiving,
.complete-sale:hover,.complete-sale:focus,
.complete-receiving:hover,.complete-receiving:focus,
#finish_sale_button:hover,#finish_sale_button:focus,
#finish_sale_alternate_button:hover,#finish_sale_alternate_button:focus {
  color:#fff !important;
}
#add_payment_button.btn-success *,#finish_sale_button *,#finish_sale_alternate_button *,
.complete-sale *, .complete-receiving * { color:inherit !important; }

/* Active payment/settings choices use the active theme surface and need white text. */
.btn-pay.active,.select-payment.active,
.receiving-setting-buttons .btn.active,
.add-payment .btn-pay.active,
.payment_types .btn.active,
.btn-group .btn-primary.active,
.btn-group .btn-success.active {
  color:#fff !important;
}
.btn-pay.active *, .select-payment.active *, .receiving-setting-buttons .btn.active * { color:inherit !important; }

/* Disabled controls must still be identifiable; disabled means inactive, not invisible. */
.btn.disabled,.btn[disabled],fieldset[disabled] .btn,
button:disabled,input[type="button"]:disabled,input[type="submit"]:disabled {
  opacity:.64 !important;
  filter:none !important;
  cursor:not-allowed !important;
}

/* Focus must be visible on keyboard/touch keyboard navigation in every theme. */
.btn:focus,button:focus,[role="button"]:focus,
.btn-pay:focus,.select-payment:focus,.register-btn:focus {
  outline:2px solid rgba(255,255,255,.88) !important;
  outline-offset:2px !important;
  box-shadow:0 0 0 4px rgba(55,65,81,.22) !important;
}
.btn-default:focus,.btn-white:focus {
  outline-color:rgba(52,65,85,.75) !important;
}

/* Mobile/touch: keep actions large enough and labels legible. */
@media (max-width: 991px){
  .btn,.btn-pay,.select-payment,.register-btn,
  button.btn,input[type="button"].btn,input[type="submit"].btn {
    min-height:38px;
  }
  .btn-xs { min-height:30px; }
}
@media (max-width: 500px){
  .btn,.btn-pay,.select-payment,.register-btn { font-size:13px !important; }
}
