/* Unboxing buttons - 2026-10-03 (button audit, package A-unboxing).
   Loaded after the other unboxing layers. Only unboxing-specific states live here: the busy state of
   Buy box / Buy key and the claim buttons, the Claim all dialog, the verb labels and the 44px gate link.
   The site-wide button families (look, hover, pressed, spinner) come from the separate actions-u1 layer. */

/* Busy (aria-busy) = request running: the button is disabled, but it must read as "working", not as the
   dimmed "unavailable" state (network css pins disabled at .55 with !important). Same rule as actions-u1. */
.wrap .boxCard .boxBuy[aria-busy="true"],
:is(#btnClaimAll, #claimAllConfirm, #claimConfirm)[aria-busy="true"] { opacity: 1 !important; cursor: progress; }
/* Keep the tile's own surface while busy (values of the wallet / key tones in css/network-20260909.css). */
body.sc-actions .wrap .boxCard .boxBuy[data-action-tone=wallet][aria-busy="true"] { --action-surface: #302b20; --action-border: #7f7049; --action-text: #f1dfb0; }
body.sc-actions .wrap .boxCard .boxBuy[data-action-tone=key][aria-busy="true"] { --action-surface: #343d45; --action-border: #63717c; --action-text: #f1f4f6; }
.boxBuy .buyText { white-space: nowrap; }
/* The verb labels ("Pirkti raktą", "BUY KEY" in the actions-u1 caps) need the room of the 13px icon; the word
   and the tile tone already say box or key. Phones also get a little more inner width. */
.ub-controls .boxCard .boxBuy .buyLabel .ico { display: none; }
@media (max-width: 540px) {
  .ub-studio.ub-controls.ub-pro .wrap .boxCard .boxBuy { padding-inline: 6px; }
}

/* Phones: the longer store label ("Pirkti SWGC") must stay on the balance row even with a 7-digit balance. */
@media (min-width: 381px) and (max-width: 420px) {   /* at 380px and below the button is icon-only (studio-flow) */
  #ubBuy .ico-plus { display: none; }
}

/* Sign-in gate: the "Back to home" link is a 44px tap target like the others. */
#ubGate .ub-gate__link--muted { min-height: 44px; }

/* Claim all dialog: one account field per server, then a result list. Uses the claim window's own boxes. */
#claimAllModal .claimAllRows { display: grid; gap: 14px; margin-top: 16px; text-align: left; }
#claimAllModal .claimAllRows[hidden], #claimAllModal .claimAllResult[hidden], #claimAllModal [hidden] { display: none; }
#claimAllModal .claimAllLabel { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: #EAF0F7; }
#claimAllModal .claimAllCount { color: #AEB8C6; font-weight: 500; }
#claimAllModal .claimInput { margin-top: 6px; text-align: left; }
#claimAllModal .claimInput:disabled { opacity: .6; }
#claimAllModal .claimStatus { margin-top: 4px; min-height: 18px; line-height: 18px; }
#claimAllModal .claimAllResult { margin-top: 14px; text-align: left; font-size: 13px; line-height: 1.5; color: #EAF0F7; }
#claimAllModal .claimAllResult strong { display: block; font-size: 15px; margin-bottom: 6px; }
#claimAllModal .claimAllResult ul { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; }
#claimAllModal .claimAllResult li { padding: 8px 10px; border: 1px solid #ffffff1f; border-radius: 7px; background: #0e141c; color: #C9D2DD; overflow-wrap: anywhere; }
#claimAllModal .claimAllResult li.is-fail { border-color: #ff6a6a55; }
#claimAllModal .claimAllResult .claimAllStop { margin-top: 8px; color: #FFB3B3; }
#claimAllModal .claimBtns { margin-top: 14px; }
