/* CSS governance pass 4: canonical theme !important declarations are intentionally retained only at the final semantic-visual authority layer. */
/*
 * BEGUIGO canonical semantic button system.
 *
 * Visual role only. Width, layout, margins, padding and container sizing remain
 * owned by the calling surface. This file standardises colour, border, radius,
 * shadow and interaction treatment across the BEGUIGO ecosystem.
 *
 * Roles:
 *   .beguigo-btn--action    Final/commit operation (save, submit, buy, bid).
 *   .beguigo-btn--confirm   Explicit positive confirmation after an “Are you sure?” step.
 *   .beguigo-btn--navigate  Go/open/continue to another destination or surface.
 *   .beguigo-btn--secondary Alternative/non-primary route (practice, back, cancel, close, reset).
 */
:root{
  --beguigo-btn-action-bg:linear-gradient(135deg,#f56565 0%,#dd252d 100%);
  --beguigo-btn-action-bg-hover:linear-gradient(135deg,#ff7072 0%,#e82932 100%);
  --beguigo-btn-action-color:#fff;
  --beguigo-btn-action-border:rgba(255,99,102,.14);
  --beguigo-btn-action-shadow:0 12px 30px rgba(221,37,45,.22);
  --beguigo-btn-action-shadow-hover:0 12px 28px rgba(99,102,241,.35);
  --beguigo-btn-action-radius:999px;

  --beguigo-btn-confirm-bg:#0d1728;
  --beguigo-btn-confirm-bg-hover:#111827;
  --beguigo-btn-confirm-color:#34d399;
  --beguigo-btn-confirm-border:#34d399;
  --beguigo-btn-confirm-shadow:none;

  --beguigo-btn-navigate-bg:linear-gradient(135deg,#6366f1 0%,#4f46e5 55%,#b91c1c 100%);
  --beguigo-btn-navigate-bg-hover:linear-gradient(135deg,#7275f5 0%,#5b52eb 55%,#c92323 100%);
  --beguigo-btn-navigate-color:#fff;
  --beguigo-btn-navigate-border:rgba(129,140,248,.20);
  --beguigo-btn-navigate-shadow:0 12px 30px rgba(91,92,240,.18);

  --beguigo-btn-secondary-bg:#101a2d;
  --beguigo-btn-secondary-bg-hover:#16233a;
  --beguigo-btn-secondary-color:#f5f7fb;
  --beguigo-btn-secondary-border:#34445f;
  --beguigo-btn-secondary-border-hover:#526889;
  --beguigo-btn-secondary-shadow:none;

  --beguigo-btn-radius:13px;
}

/* Base semantic contract. Deliberately excludes width, padding and min-height. */
.beguigo-btn{
  border-style:solid!important;
  border-width:1px!important;
  border-radius:var(--beguigo-btn-radius)!important;
  color:#fff!important;
  font-weight:850!important;
  text-decoration:none!important;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,filter .18s ease,transform .18s ease!important;
}
.beguigo-btn:hover:not(:disabled):not([aria-disabled="true"]){transform:translateY(-1px)}
.beguigo-btn:focus-visible{outline:3px solid rgba(45,174,199,.62)!important;outline-offset:3px!important}
.beguigo-btn:disabled,.beguigo-btn[disabled],.beguigo-btn[aria-disabled="true"],.beguigo-btn.is-disabled,.beguigo-btn.disabled{
  opacity:.52!important;cursor:not-allowed!important;transform:none!important;box-shadow:none!important;filter:saturate(.65)!important;
}

.beguigo-btn--action{
  background:var(--beguigo-btn-action-bg)!important;
  color:var(--beguigo-btn-action-color)!important;
  border-color:var(--beguigo-btn-action-border)!important;
  border-radius:var(--beguigo-btn-action-radius)!important;
  box-shadow:var(--beguigo-btn-action-shadow)!important;
}
.beguigo-btn--action:hover:not(:disabled):not([aria-disabled="true"]){
  background:var(--beguigo-btn-action-bg-hover)!important;
  box-shadow:var(--beguigo-btn-action-shadow-hover)!important;
  transform:translateY(-2px);
}

.beguigo-btn--confirm{
  background:var(--beguigo-btn-confirm-bg)!important;
  color:var(--beguigo-btn-confirm-color)!important;
  border-color:var(--beguigo-btn-confirm-border)!important;
  box-shadow:var(--beguigo-btn-confirm-shadow)!important;
}
.beguigo-btn--confirm:hover:not(:disabled):not([aria-disabled="true"]){
  background:var(--beguigo-btn-confirm-bg-hover)!important;
  color:#fff!important;
  border-color:var(--beguigo-btn-confirm-border)!important;
}

.beguigo-btn--navigate{
  background:var(--beguigo-btn-navigate-bg)!important;
  color:var(--beguigo-btn-navigate-color)!important;
  border-color:var(--beguigo-btn-navigate-border)!important;
  box-shadow:var(--beguigo-btn-navigate-shadow)!important;
}
.beguigo-btn--navigate:hover:not(:disabled):not([aria-disabled="true"]){background:var(--beguigo-btn-navigate-bg-hover)!important}

.beguigo-btn--secondary{
  background:var(--beguigo-btn-secondary-bg)!important;
  color:var(--beguigo-btn-secondary-color)!important;
  border-color:var(--beguigo-btn-secondary-border)!important;
  box-shadow:var(--beguigo-btn-secondary-shadow)!important;
}
.beguigo-btn--secondary:hover:not(:disabled):not([aria-disabled="true"]){
  background:var(--beguigo-btn-secondary-bg-hover)!important;
  border-color:var(--beguigo-btn-secondary-border-hover)!important;
}


/* Any ordinary frontend form submit is a commit/final action unless an explicit
 * semantic role says otherwise. :where() keeps this mapping at zero specificity. */
:where(body.beguigo-theme) :where(button[type="submit"],input[type="submit"]):not(.beguigo-btn--navigate):not(.beguigo-btn--secondary):not(.beguigo-btn--confirm):not(.nan_button_confirm_ok){
  background:var(--beguigo-btn-action-bg)!important;
  color:var(--beguigo-btn-action-color)!important;
  border-color:var(--beguigo-btn-action-border)!important;
  box-shadow:var(--beguigo-btn-action-shadow)!important;
}

/*
 * Backward-compatible semantic mappings for established BEGUIGO output.
 * These are visual aliases only and make the system immediately consistent
 * while source templates progressively carry explicit semantic role classes.
 */

/* Final/commit actions. */
:where(
  #nan_ui_insert_bid_button,
  #nan_ui_cancel_bids_button,
  #nan_ui_autobider_button,
  #nan_ui_get_packinfo_button,
  #nan_ui_buynow_button,
  #nan_ui_pause_button,
  #nan_ui_terminate_button,
  #nan_ui_packinfo_insert_bid_button,
  #beguigoSkillSubmit,
  #beguigoSubmitAnswerButton,
  #beguigoSubmitAnswerButtonMultiple,
  #beguigoSubmitAnswerButtonMultipleChoices,
  .beguigo-contact-submit,
  .beguigo-account-save-action,
  .beguigo-checkout-upgrade__button,
  .beguigo-notifications__bulk,
  .bgh-short-trigger:not(.beguigo-btn--secondary)
){
  background:var(--beguigo-btn-action-bg)!important;color:var(--beguigo-btn-action-color)!important;border-color:var(--beguigo-btn-action-border)!important;border-radius:var(--beguigo-btn-action-radius)!important;box-shadow:var(--beguigo-btn-action-shadow)!important;
}
:where(
  #nan_ui_insert_bid_button,
  #nan_ui_cancel_bids_button,
  #nan_ui_autobider_button,
  #nan_ui_get_packinfo_button,
  #nan_ui_buynow_button,
  #nan_ui_pause_button,
  #nan_ui_terminate_button,
  #nan_ui_packinfo_insert_bid_button
):hover:not(:disabled):not([aria-disabled="true"]){
  background:var(--beguigo-btn-action-bg-hover)!important;
  box-shadow:var(--beguigo-btn-action-shadow-hover)!important;
  transform:translateY(-2px);
}

/* Explicit confirmation actions. Legacy nan_* markup maps to the same canonical role.
 * Visual treatment intentionally follows the original BEGUIGO confirmation pattern:
 * dark card + success-green border/text; width/layout stay surface-owned. */
:where(
  .nan_button_confirm_ok,
  #nan_ui_insert_bid_confirm_ok,
  #nan_ui_cancel_bids_confirm_ok,
  #nan_ui_autobider_confirm_ok,
  #nan_ui_autobider_delete_confirm_ok,
  #nan_ui_pause_confirm_ok,
  #nan_ui_terminate_confirm_ok,
  .nan-protect-bid-confirm-ok,
  .nan-recover-bid-confirm-ok,
  .nan-remove-own-bid-confirm-ok,
  .nan-give-up-confirm-ok
){
  background:var(--beguigo-btn-confirm-bg)!important;
  color:var(--beguigo-btn-confirm-color)!important;
  border-color:var(--beguigo-btn-confirm-border)!important;
  box-shadow:var(--beguigo-btn-confirm-shadow)!important;
}
:where(.nan_button_confirm_ok):hover:not(:disabled):not([aria-disabled="true"]){
  background:var(--beguigo-btn-confirm-bg-hover)!important;
  color:#fff!important;
  border-color:var(--beguigo-btn-confirm-border)!important;
}

/* Navigation/go-to actions. */
:where(
  .beguigo-welcome-continue,
  .nan-home-button.main,
  .bhw-btn:not(.bhw-btn-ghost),
  .ba-btn:not(.ba-btn-ghost),
  .bgbps-btn:not(.bgbps-ghost),
  .bp-button:not(.bp-button-outline),
  .bi-button:not(.bi-button-outline),
  .beguigo-c__link,
  .beguigo-password-reset-confirmation__button,
  .beguigo-access-locked__btn:not(.beguigo-access-locked__btn--ghost),
  .beguigo-challenge-request-gate__cta,
  .beguigo-shop-category-cta,
  .nan-challenge-loop-button,
  .bgpulse-cta,
  .bma-smartness-cta,
  .woocommerce a.button:not(.add_to_cart_button):not(.remove):not(.beguigo-btn--action):not(.beguigo-btn--secondary)
){
  background:var(--beguigo-btn-navigate-bg)!important;color:var(--beguigo-btn-navigate-color)!important;border-color:var(--beguigo-btn-navigate-border)!important;box-shadow:var(--beguigo-btn-navigate-shadow)!important;
}

/* Secondary / alternative routes. */
:where(
  .nan-home-button-outline,
  .bgcredits-ghost,
  .bgvip-ghost,
  .sq-button-outline,
  .bq-button-outline,
  .bf-button-outline,
  .bg-ghost,
  .bhw-btn-ghost,
  .bi-button-outline,
  .beguigo-welcome-flow-button-secondary,
  .beguigo-skill-close-secondary,
  .beguigo-quiz-close-secondary,
  .beguigo-access-locked__btn--ghost,
  .bma-wallet-reset,
  .bgpulse-close,
  .nan_button_confirm_no,
  .nan_button_cancel,
  .nan_button_close
){
  background:var(--beguigo-btn-secondary-bg)!important;color:var(--beguigo-btn-secondary-color)!important;border-color:var(--beguigo-btn-secondary-border)!important;box-shadow:none!important;
}

/* BPS Smartness catalogue: mode is semantic, not positional. */
.bgh-catalogue-actions > div:first-child :where(button,.button,.beguigo-skill-trigger){
  background:var(--beguigo-btn-secondary-bg)!important;color:var(--beguigo-btn-secondary-color)!important;border:1px solid var(--beguigo-btn-secondary-border)!important;box-shadow:none!important;
}
.bgh-catalogue-actions > div:last-child :where(button,.button,.beguigo-skill-trigger){
  background:var(--beguigo-btn-action-bg)!important;color:var(--beguigo-btn-action-color)!important;border:1px solid var(--beguigo-btn-action-border)!important;box-shadow:var(--beguigo-btn-action-shadow)!important;
}

/* Existing public/onboarding classes that are primary only because of legacy CSS
 * are normalised when they carry an explicit semantic role. */
:where(.nan-home-button,.bhw-btn,.ba-btn,.bgbps-btn,.bp-button,.bi-button,.luo-button,.bgcredits-btn,.bgvip-btn,.sq-button,.bq-button,.bf-button,.bg-btn).beguigo-btn--action{
  background:var(--beguigo-btn-action-bg)!important;border-color:var(--beguigo-btn-action-border)!important;box-shadow:var(--beguigo-btn-action-shadow)!important;
}
:where(.nan-home-button,.bhw-btn,.ba-btn,.bgbps-btn,.bp-button,.bi-button,.luo-button,.bgcredits-btn,.bgvip-btn,.sq-button,.bq-button,.bf-button,.bg-btn).beguigo-btn--navigate{
  background:var(--beguigo-btn-navigate-bg)!important;border-color:var(--beguigo-btn-navigate-border)!important;box-shadow:var(--beguigo-btn-navigate-shadow)!important;
}
:where(.nan-home-button,.bhw-btn,.ba-btn,.bgbps-btn,.bp-button,.bi-button,.luo-button,.bgcredits-btn,.bgvip-btn,.sq-button,.bq-button,.bf-button,.bg-btn).beguigo-btn--secondary{
  background:var(--beguigo-btn-secondary-bg)!important;border-color:var(--beguigo-btn-secondary-border)!important;box-shadow:none!important;
}
