

/* ── Claim page inline style extractions ── */
.claim-step-check-icon {
    width: 14px;
    height: 14px;
}
.claim-shimmer-line-60 {
    width: 60%;
}
.claim-shimmer-line-sm-40 {
    width: 40%;
}
.claim-shimmer-line-75 {
    width: 75%;
}
.claim-shimmer-line-sm-50 {
    width: 50%;
}
.claim-shimmer-line-sm-55 {
    width: 55%;
}
.claim-shimmer-btn-full {
    width: 100%;
}
.claim-disconnect-btn {
    width: 100%;
    margin-bottom: 0.75rem;
}
.claim-success-actions-spaced {
    margin-top: 0.75rem;
}
.claim-redirect-center {
    text-align: center;
}
.claim-redirect-spinner {
    margin-bottom: 1rem;
}
.claim-redirect-title {
    color: var(--bg-card);
}
.claim-redirect-desc {
    color: var(--text-secondary);
    font-size: 0.9rem;
}
.claim-redirect-btn {
    margin-top: 1rem;
}

/* ===== ticket-action inline style extractions (action_cards.rs) ===== */

/* Secondary description with bottom spacing */
.ticket-action-alt-desc {
    margin-bottom: 0.25rem;
}

/* Muted secondary text inside action card descriptions */
.ticket-action-alt-text {
    color: var(--text-secondary);
    font-size: 0.8rem;
}

/* Wallet button row with micro spacing */
.ticket-action-wallet-btn {
    margin-right: 0.25rem;
    margin-bottom: 0.25rem;
}

/* Cancel/back button with small top margin */
.ticket-action-cancel {
    margin-top: 0.5rem;
}

/* Cancel/back button with minimal top margin */
.ticket-action-cancel-xs {
    margin-top: 0.25rem;
}

/* Signing spinner row with flex alignment */
.ticket-action-signing-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Success-colored action title */
.ticket-action-title-success {
    color: var(--success);
}

/* Danger-colored action title */
.ticket-action-title-danger {
    color: var(--danger);
}

/* Hold-as-credit action card (Issue #061) — success-tinted, distinguishing the
   "keep your money with us" path from the info-tinted refund guidance above it.
   The modifier was referenced by HoldDepositCard before it had a rule, so the
   card silently fell back to the neutral accent base. */
.ticket-action-card--hold {
    border-left-color: var(--success);
    background: linear-gradient(
        135deg,
        var(--success-bg) 0%,
        var(--bg-card) 100%
    );
}
.ticket-action-card--hold .ticket-action-btn {
    background: var(--success);
}
.ticket-action-card--hold .ticket-action-btn:hover {
    opacity: 0.85;
}

/* Credit-return request card (Issue #061 Phase 3 exit path) — warning-tinted:
   it moves money back out, the counterpart to the success-tinted hold. */
.ticket-action-card--credit-refund {
    border-left-color: var(--warning);
    background: linear-gradient(
        135deg,
        var(--warning-bg) 0%,
        var(--bg-card) 100%
    );
}
.ticket-action-card--credit-refund .ticket-action-btn {
    background: var(--warning);
}
.ticket-action-card--credit-refund .ticket-action-btn:hover {
    opacity: 0.85;
}

/* Rolling deposit-credit chip (Issue #061) — a one-line balance readout above
   the ticket action cards. Deliberately lighter than a card: it is a status
   readout, not an action, and it is absent entirely when the balance is zero. */
.ticket-credit-chip {
    max-width: 420px;
    width: 100%;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
    padding: 0.5rem 0.75rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--success);
    background: var(--success-bg);
    font-size: 0.8rem;
}
.ticket-credit-chip .icon-sm {
    color: var(--success);
    flex-shrink: 0;
}
.ticket-credit-chip-label {
    font-weight: 600;
    color: var(--text-primary);
}
.ticket-credit-chip-value {
    font-weight: 700;
    color: var(--success);
}
.ticket-credit-chip-hint {
    flex-basis: 100%;
    color: var(--text-secondary);
    font-size: 0.75rem;
}
/* Credit committed to an event that has not ended (issue #120). Listed under
   the balance, never added to it — it is the attendee's money, but it cannot
   be spent or refunded until that event releases it. */
.ticket-credit-chip-locked {
    flex-basis: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}
.ticket-credit-chip-locked-item {
    color: var(--text-primary);
    font-size: 0.75rem;
}
.ticket-credit-chip-locked-item .ticket-credit-chip-hint {
    /* Inside a list item this is not a flex item, so the 100% basis above does
       not apply — the hint reads as a continuation of the same sentence. */
    display: inline;
}

/* ===== events inline style extractions (events_page.rs) ===== */

/* Flex row with wrap and center alignment (extends flex-row-gap) */
.events-flex-wrap-center {
    flex-wrap: wrap;
    align-items: center;
}

/* Flex row with wrap only (extends flex-row-gap) */
.events-flex-wrap {
    flex-wrap: wrap;
}

/* ===== Login ===== */
.login-center-col {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.login-back-link {
    color: var(--text-secondary);
    font-size: 0.85rem;
    margin-top: 1rem;
    text-decoration: none;
}

