/* AIR22 / VEVL-192 — shared buttons and links contract.
   Loaded after route-level public styles and after shell accessibility styles. */
:root{
  --sp-action-radius:9px;
  --sp-action-min-height:48px;
  --sp-action-focus:#69b7ff;
  --sp-action-link:#8dccff;
  --sp-action-link-hover:#c8e8ff;
}

/* Public conversion actions: preserve page colors/gradients, normalize geometry and motion. */
body main .button:not(.button-text):not(.faq9-copy-link):not(.stories6-filter-button){
  min-height:var(--sp-action-min-height)!important;
  border-radius:var(--sp-action-radius);
  padding-inline:22px;
  font-weight:700;
  line-height:1.2;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background-color .16s ease,filter .16s ease;
}
body main .button:not(.button-text):not(.faq9-copy-link):not(.stories6-filter-button):active{
  transform:translateY(0) scale(.985);
}
body main :is(button,.button)[disabled],
body main :is(button,.button)[aria-disabled="true"]{
  transform:none!important;
  filter:none!important;
  box-shadow:none!important;
  cursor:not-allowed!important;
  opacity:.58!important;
}
body main a.button[aria-disabled="true"]{
  pointer-events:none;
}


/* AIR22 hierarchy correction: shared secondary actions must never inherit the
   primary conversion gradient. The AIR21 baseline rendered .button-secondary
   identically to .button on multiple public routes. */
body[data-global-actions="v192"] main .button.button-secondary,
body[data-global-actions="v192"] main .button.button-ghost{
  border-color:rgba(132,177,219,.34)!important;
  background:rgba(5,18,34,.64)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035)!important;
  color:#dce8f4!important;
}
body[data-global-actions="v192"] main .button.button-secondary:hover,
body[data-global-actions="v192"] main .button.button-ghost:hover{
  border-color:rgba(105,183,255,.72)!important;
  background:rgba(12,39,67,.82)!important;
  box-shadow:0 10px 24px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.045)!important;
  color:#fff!important;
}

/* Home CTA used a higher-specificity legacy .home-cta a primary rule. Restore
   its explicit secondary action to the same shared hierarchy. */
body[data-global-actions="v192"].home-vevl main .home-cta .home-cta__secondary{
  border-color:rgba(132,177,219,.34)!important;
  background:rgba(5,18,34,.64)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035)!important;
  color:#dce8f4!important;
}
body[data-global-actions="v192"].home-vevl main .home-cta .home-cta__secondary:hover{
  border-color:rgba(105,183,255,.72)!important;
  background:rgba(12,39,67,.82)!important;
  color:#fff!important;
}

/* Prose links should read as links without turning card/navigation surfaces into underlined text. */
body main :where(p,li,dd) > a[href]:not(.button):not([class*="card"]):not([class*="action"]):not([class*="button"]){
  color:var(--sp-action-link);
  text-decoration-line:underline;
  text-decoration-thickness:1px;
  text-decoration-color:color-mix(in srgb,var(--sp-action-link) 48%,transparent);
  text-underline-offset:.2em;
  transition:color .16s ease,text-decoration-color .16s ease;
}
body main :where(p,li,dd) > a[href]:not(.button):not([class*="card"]):not([class*="action"]):not([class*="button"]):hover{
  color:var(--sp-action-link-hover);
  text-decoration-color:currentColor;
}

/* Customer shell: the historical 43px primary/secondary controls were one pixel under the
   universal target floor and visually sharper than the current Spaceron system. */
.account-page :is(.primary-button,.secondary-button){
  min-height:44px;
  border-radius:8px;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background-color .16s ease,filter .16s ease;
}
.account-page :is(.primary-button,.secondary-button):active{transform:scale(.985)}
.account-page :is(.primary-button,.secondary-button):disabled{transform:none!important;box-shadow:none!important;opacity:.58;cursor:not-allowed}

/* Authentication/operations buttons already use a strong visual family; add only shared state behavior. */
body[class*="auth-page--"] .auth-button{
  min-height:50px!important;
  transition:transform .16s ease,filter .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.auth-button:active{transform:scale(.985)}
body[class*="auth-page--"] .auth-button:disabled{transform:none!important;filter:none!important;box-shadow:none!important;opacity:.52;cursor:not-allowed}

/* Shared interactive links use the same keyboard ring even on pages with stronger local selectors. */
:where(.account-page,body[class*="auth-page--"]) :where(a[href],button,[role="button"]):focus-visible,
body main :where(a[href],button,[role="button"]):focus-visible{
  outline:3px solid var(--sp-action-focus)!important;
  outline-offset:3px!important;
}

@media(max-width:520px){
  body main .button:not(.button-text):not(.faq9-copy-link):not(.stories6-filter-button){
    width:auto;
    max-width:100%;
    min-height:48px;
    padding-inline:18px;
  }
}

@media(prefers-reduced-motion:reduce){
  body main .button,
  body main :where(p,li,dd)>a[href],
  .account-page :is(.primary-button,.secondary-button),
  body[class*="auth-page--"] .auth-button{
    transition:none!important;
    transform:none!important;
  }
}

@media(forced-colors:active){
  body main .button,
  .account-page :is(.primary-button,.secondary-button),
  body[class*="auth-page--"] .auth-button{
    border:1px solid ButtonText;
  }
  body main :where(p,li,dd)>a[href]{text-decoration-color:LinkText}
}
