/* Shared Claim Free G$ component. Loaded by /community and /wallet. */
.modal-overlay.gm-claim-modal,
.modal-overlay.gm-claim-support { position: fixed; inset: 0; z-index: 5000; display: none; align-items: center; justify-content: center; padding: .75rem; background: rgba(15, 23, 42, .58); backdrop-filter: blur(3px); }
.modal-overlay.gm-claim-modal.open,
.modal-overlay.gm-claim-support.open { display: flex; }
.gm-claim-sheet { width: min(100%, 480px); max-height: min(92dvh, 860px); overflow-y: auto; padding: 1.5rem 1.5rem 2rem; border: 1px solid var(--card-border, rgba(148, 163, 184, .25)); border-radius: 24px 24px 18px 18px; background: var(--card, #fff); color: var(--text, #1f2937); box-shadow: 0 18px 50px rgba(15, 23, 42, .28); }
.gm-claim-sheet .modal-handle { width: 2.8rem; height: .25rem; margin: 0 auto .75rem; border-radius: 999px; background: rgba(100, 116, 139, .28); }
.gm-claim-sheet .modal-title { margin-bottom: .25rem; font-size: 1.15rem; font-weight: 900; text-align: center; letter-spacing: -.01em; }
.gm-claim-subtitle { max-width: 34rem; margin: 0 auto .95rem; color: var(--text-muted, #64748b); font-size: .75rem; line-height: 1.45; text-align: center; }
.ubi-pool-panel { padding: .7rem; margin-bottom: .7rem; border: 1px solid rgba(148, 163, 184, .25); border-radius: 12px; background: rgba(148, 163, 184, .07); }
.ubi-pool-head { display: flex; justify-content: space-between; gap: .5rem; font-size: .76rem; font-weight: 800; }
.ubi-pool-live { color: #15803d; font-size: .7rem; text-transform: uppercase; }
.ubi-pool-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .45rem; margin-top: .55rem; }
.ubi-pool-cell { min-width: 0; padding: .45rem; border-radius: 9px; background: rgba(148, 163, 184, .08); }
.ubi-pool-cell-label { display: block; color: var(--text-muted, #64748b); font-size: .72rem; line-height: 1.3; }
.ubi-pool-cell-value { display: block; margin-top: .18rem; font-size: .76rem; font-weight: 800; }
.ubi-pool-cell-value.is-accent { color: #b45309; }
.ubi-pool-note, .claim-wallet-note { margin-top: .5rem; color: var(--text-muted, #64748b); font-size: .75rem; line-height: 1.4; }
.claim-network-list { display: grid; gap: .5rem; }
.claim-network-card { display: grid; grid-template-columns: 1fr auto; gap: .55rem; align-items: center; padding: .72rem; border: 1px solid var(--card-border, rgba(148, 163, 184, .28)); border-radius: 13px; background: var(--card-soft, rgba(148, 163, 184, .06)); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.claim-network-card.is-recommended { border-color: rgba(13, 148, 136, .4); background: linear-gradient(135deg, rgba(13, 148, 136, .09), rgba(234, 88, 12, .06)); box-shadow: 0 5px 16px rgba(13, 148, 136, .08); }
.claim-network-card:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(67, 56, 43, .08); }
.claim-network-card.is-selected { border-color: #7c3aed; }
.claim-network-main { display: flex; min-width: 0; align-items: center; gap: .55rem; }
.claim-network-icon { display: grid; width: 2rem; height: 2rem; flex: 0 0 auto; place-items: center; border: 1px solid var(--card-border, rgba(148, 163, 184, .28)); border-radius: 10px; background: var(--card, #fff); font-size: 1rem; }
.claim-network-name { font-size: .78rem; font-weight: 800; }
.claim-network-hint { margin-top: .12rem; color: var(--text-muted, #64748b); font-size: .75rem; line-height: 1.4; }
.claim-network-status { white-space: nowrap; color: var(--text-muted, #64748b); font-size: .75rem; font-weight: 800; }
.claim-network-status.available { color: #15803d; }
.claim-network-status.warning { color: #b45309; }
.claim-card-btn { grid-column: 1 / -1; width: 100%; padding: .55rem .7rem; border: 0; border-radius: 10px; background: linear-gradient(135deg, var(--accent, #ea580c), #0d9488); color: #fff; font-weight: 900; cursor: pointer; }
.gm-claim-sheet > #ubiClaimBtn { width: 100%; margin-top: .7rem; }
.gm-claim-sheet .claim-status { min-height: 1.2rem; margin-top: .55rem; color: var(--text-muted, #64748b); font-size: .75rem; line-height: 1.4; }
.gm-claim-warning { margin-top: .65rem; padding: .55rem .7rem; border: 1px solid rgba(217, 119, 6, .35); border-radius: 10px; color: #92400e; font-size: .75rem; line-height: 1.4; }
.gm-reverify-hint { margin-top: .6rem; padding: .55rem .7rem; border: 1px solid rgba(124, 58, 237, .25); border-radius: 10px; text-align: center; color: #7c3aed; font-size: .75rem; }
.gm-reverify-hint button { margin-top: .35rem; padding: .35rem .75rem; border: 0; border-radius: 8px; background: #7c3aed; color: #fff; font-size: .72rem; font-weight: 700; cursor: pointer; }
.gm-claim-sheet .countdown-box { margin-top: .65rem; padding: .55rem; border-radius: 10px; background: rgba(148, 163, 184, .08); text-align: center; }
.gm-claim-sheet .countdown-label { color: var(--text-muted, #64748b); font-size: .72rem; text-transform: uppercase; }
.gm-claim-sheet .countdown-display { margin-top: .15rem; font-size: 1.15rem; font-weight: 800; }
.gm-claim-sheet .countdown-note { color: var(--text-muted, #64748b); font-size: .72rem; }
.gm-claim-support-copy { color: var(--text-muted, #64748b); font-size: .8rem; line-height: 1.45; text-align: center; }
.gm-claim-pin { width: 100%; padding: .8rem 1rem; border: 1px solid rgba(148, 163, 184, .35); border-radius: 10px; background: transparent; color: inherit; font-size: 1.35rem; letter-spacing: .5rem; text-align: center; }
.gm-claim-error { margin: .6rem 0; color: #dc2626; font-size: .75rem; text-align: center; }
.gm-fv-intro-lead, .gm-fv-intro-card { margin-bottom: .65rem; padding: .65rem .75rem; border-radius: 10px; font-size: .75rem; line-height: 1.45; }
.gm-fv-intro-lead { background: rgba(124, 58, 237, .08); color: #6d28d9; }
.gm-fv-intro-card { border: 1px solid rgba(148, 163, 184, .22); }
.gm-fv-intro-card strong { font-size: .75rem; }
.gm-fv-intro-card p { margin: .25rem 0 0; color: var(--text-muted, #64748b); }
.gm-claim-sheet .modal-sheet-footer { display: grid; gap: .45rem; margin-top: .8rem; }
@media (max-height: 700px) { .gm-claim-sheet { padding: .7rem; } .ubi-pool-note, .countdown-note { display: none; } }
@media (max-width: 640px) { .gm-claim-sheet { max-height: calc(100dvh - 76px); border-radius: 24px 24px 0 0; } }

/* Community uses a white social-feed canvas while Wallet supplies its own
   dark/light theme variables. These tokens make the shared sheet feel native
   in the feed without creating a second claim implementation. */
body.cf-page .gm-claim-sheet { --card: var(--cf-card, #fff); --card-soft: var(--cf-field, #f7f7f7); --card-border: var(--cf-border, #e9e2d6); --text: var(--cf-ink, #292524); --text-muted: var(--cf-dim, #6b5d48); --accent: var(--cf-accent, #0369a1); }
body.cf-page .gm-claim-modal { background: rgba(41, 37, 36, .48); }
/* On the Community page this unlock sheet must outrank the open claim sheet;
   do not rely only on the current partial order in the template DOM. */
body.cf-page #lwUnlockModal { z-index: 5100; }
/* Keep the shared CTA refresh confined to Community. The controller's inline
   violet background for Face ID states intentionally wins over this base. */
body.cf-page .gm-claim-sheet > #ubiClaimBtn { display: flex; min-height: 54px; align-items: center; justify-content: center; gap: .5rem; padding: .8rem 1rem; border: 1px solid transparent; border-radius: 14px; background: linear-gradient(135deg, var(--cf-accent, #e8720a), #0f766e); color: #fff; font-family: inherit; font-size: 1.025rem; font-weight: 800; line-height: 1.2; box-shadow: 0 5px 14px rgba(41, 37, 36, .16); cursor: pointer; transition: background .18s ease, box-shadow .18s ease, transform .18s ease; }
body.cf-page .gm-claim-sheet > #ubiClaimBtn:not(:disabled):hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(41, 37, 36, .2); }
body.cf-page .gm-claim-sheet > #ubiClaimBtn:not(:disabled):active { transform: translateY(0); box-shadow: inset 0 2px 4px rgba(41, 37, 36, .2); }
body.cf-page .gm-claim-sheet > #ubiClaimBtn.is-hot:not(:disabled) { border-color: #d97706; background: linear-gradient(110deg, #fbbf24, #fde68a 48%, #f59e0b); color: #422006; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .65), 0 5px 16px rgba(180, 83, 9, .24); }
body.cf-page .gm-claim-sheet > #ubiClaimBtn:disabled { transform: none; border-color: #d6d3d1; background: #e7e5e4; color: #57534e; box-shadow: none; cursor: not-allowed; }
body.cf-page .gm-claim-sheet > #ubiClaimBtn:focus-visible,
body.cf-page .gm-reverify-hint button:focus-visible { outline: 3px solid #1d4ed8; outline-offset: 3px; }
body.cf-page .gm-reverify-hint button { min-height: 44px; margin-top: .45rem; padding: .6rem 1rem; border: 0; border-radius: 9px; background: #6d28d9; color: #fff; font-size: .8rem; font-weight: 750; line-height: 1.2; cursor: pointer; transition: background .18s ease, transform .18s ease; }
body.cf-page .gm-reverify-hint button:hover { background: #5b21b6; }
body.cf-page .gm-reverify-hint button:active { transform: translateY(1px); }
@media (prefers-reduced-motion: reduce) {
    body.cf-page .gm-claim-sheet > #ubiClaimBtn,
    body.cf-page .gm-reverify-hint button { transition: none; }
}
