/* Reference CTA palette v42 — large actions only; navigation and icon controls are excluded. */
:root{
  --wl-cta-reference:#168775;
  --wl-cta-reference-hover:#0b5f53;
  --wl-cta-reference-active:#084d44;
  --wl-cta-reference-ring:rgba(22,135,117,.23);
  --wl-cta-reference-shadow:rgba(11,95,83,.20);
}

/* Shared primary actions across pages, forms, dialogs and the contract wizard. */
#appShell .main-stage .button.primary,
#appShell .main-stage .button.button-primary,
#appShell .main-stage button.primary-button,
#appShell .main-stage button.contract-primary,
#appShell .main-stage button.traveler-primary,
#appShell .main-stage button.traveler-action-primary,
#appShell .main-stage button.direct-upload-cta,
#appShell .main-stage button.itinerary-upload-button,
#appShell .main-stage button.appointment-confirm-button,
#appShell .main-stage button.appointment-save-note,
#appShell .main-stage button.cockpit-comment-send,
#appShell .main-stage button.traveler-passport-save,
#appShell .main-stage button.contract-generate-submit,
#appShell .main-stage button.contract-doc-button.is-generate,
#appShell .main-stage button.contract-doc-button.is-dark,
#appShell .main-stage button.ticket-save,
#appShell .main-stage button.ticket-regenerate,
#appShell .main-stage button.ticket-save-regenerate,
#appShell .main-stage button[data-action="case-rail-calendar-save"],
#contractWizardRoot .button-primary,
.module-modal .button.primary,
.modal .button.primary{
  border-color:var(--wl-cta-reference)!important;
  background:var(--wl-cta-reference)!important;
  background-image:none!important;
  color:#fff!important;
  box-shadow:0 9px 22px var(--wl-cta-reference-shadow)!important;
}

/* Header CTA: explicitly scoped away from the sidebar. */
#appShell .topbar .topbar-new-contract{
  border-color:var(--wl-cta-reference)!important;
  background:var(--wl-cta-reference)!important;
  color:#fff!important;
  box-shadow:0 7px 18px var(--wl-cta-reference-shadow)!important;
}

/* Ticket Bot uses standalone controls rather than the shared button component. */
#page-ticket-bot .ticket-toolbar form[data-ticket-search]>button,
#page-ticket-bot .ticket-ai-button{
  border-color:var(--wl-cta-reference)!important;
  background:var(--wl-cta-reference)!important;
  background-image:none!important;
  color:#fff!important;
  box-shadow:0 7px 18px var(--wl-cta-reference-shadow)!important;
}
#page-ticket-bot .ticket-toolbar form[data-ticket-search]:focus-within{
  border-color:var(--wl-cta-reference)!important;
  box-shadow:0 0 0 3px rgba(22,135,117,.11)!important;
}

/* Keep one consistent hover/pressed language for every large green action. */
#appShell .main-stage .button.primary:hover:not(:disabled),
#appShell .main-stage .button.button-primary:hover:not(:disabled),
#appShell .main-stage button.primary-button:hover:not(:disabled),
#appShell .main-stage button.contract-primary:hover:not(:disabled),
#appShell .main-stage button.traveler-primary:hover:not(:disabled),
#appShell .main-stage button.traveler-action-primary:hover:not(:disabled),
#appShell .main-stage button.direct-upload-cta:hover:not(:disabled),
#appShell .main-stage button.itinerary-upload-button:hover:not(:disabled),
#appShell .main-stage button.appointment-confirm-button:hover:not(:disabled),
#appShell .main-stage button.appointment-save-note:hover:not(:disabled),
#appShell .main-stage button.cockpit-comment-send:hover:not(:disabled),
#appShell .main-stage button.traveler-passport-save:hover:not(:disabled),
#appShell .main-stage button.contract-generate-submit:hover:not(:disabled),
#appShell .main-stage button.contract-doc-button.is-generate:hover:not(:disabled),
#appShell .main-stage button.contract-doc-button.is-dark:hover:not(:disabled),
#appShell .main-stage button.ticket-save:hover:not(:disabled),
#appShell .main-stage button.ticket-regenerate:hover:not(:disabled),
#appShell .main-stage button.ticket-save-regenerate:hover:not(:disabled),
#appShell .main-stage button[data-action="case-rail-calendar-save"]:hover:not(:disabled),
#appShell .topbar .topbar-new-contract:hover:not(:disabled),
#contractWizardRoot .button-primary:hover:not(:disabled),
.module-modal .button.primary:hover:not(:disabled),
.modal .button.primary:hover:not(:disabled),
#page-ticket-bot .ticket-toolbar form[data-ticket-search]>button:hover:not(:disabled),
#page-ticket-bot .ticket-ai-button:hover:not(:disabled){
  border-color:var(--wl-cta-reference-hover)!important;
  background:var(--wl-cta-reference-hover)!important;
  background-image:none!important;
  box-shadow:0 11px 26px var(--wl-cta-reference-shadow)!important;
  transform:translateY(-1px);
}

#appShell .main-stage .button.primary:active:not(:disabled),
#appShell .main-stage .button.button-primary:active:not(:disabled),
#appShell .topbar .topbar-new-contract:active:not(:disabled),
#contractWizardRoot .button-primary:active:not(:disabled),
#page-ticket-bot .ticket-toolbar form[data-ticket-search]>button:active:not(:disabled),
#page-ticket-bot .ticket-ai-button:active:not(:disabled){
  background:var(--wl-cta-reference-active)!important;
  transform:translateY(0) scale(.985);
}

#appShell .main-stage .button.primary:focus-visible,
#appShell .main-stage .button.button-primary:focus-visible,
#appShell .topbar .topbar-new-contract:focus-visible,
#contractWizardRoot .button-primary:focus-visible,
#page-ticket-bot .ticket-toolbar form[data-ticket-search]>button:focus-visible,
#page-ticket-bot .ticket-ai-button:focus-visible{
  outline:3px solid var(--wl-cta-reference-ring)!important;
  outline-offset:2px!important;
}
