/* Easy rewards: presentation only. Account and redemption checks remain authoritative. */
.rewards-page {
  --rw-bg: #0c101b; --rw-surface: #151b2b; --rw-surface-2: #20283c;
  --rw-line: #38435d; --rw-text: #f5f7ff; --rw-muted: #bdc6dc;
  --rw-gold: #ffd17a; --rw-accent: #b6a7ff;
  line-height: 1.6;
}
.rewards-page *, .rewards-page *::before, .rewards-page *::after { box-sizing: border-box; }
.rewards-page :is(button, input, summary, .rw-nav a, .rw-foot a) { min-height: 48px; }
.rewards-page :is(a, button, input, summary):focus-visible { outline: 3px solid var(--rw-gold); outline-offset: 4px; }
.rewards-page :is(button, a, input, summary) { touch-action: manipulation; }
.rw-wrap { max-width: 1200px; padding-inline: clamp(16px, 4vw, 40px); }
.rw-top { min-height: 82px; }
.rw-nav { gap: 24px; }
.rw-brand { font-weight: 700; }
.rw-nav a, .rw-foot a { font-size: .9375rem; }
.rw-gate { margin-block: 48px 64px; gap: clamp(24px, 6vw, 72px); }
.rw-gate h1 { font-weight: 700; letter-spacing: -.04em; }
.rw-gate-intro > p:not(.rw-eyebrow) { font-size: 1rem; }
.rw-gate-card { border-radius: 18px; }
.rw-gate-card .rw-auth-btn + .rw-auth-btn { margin-top: 12px; }
.rw-auth-btn { background: var(--rw-accent); font-weight: 700 !important; }
.rw-gate-foot { font-size: .9375rem; }
.rw-eyebrow { font-size: .875rem; font-weight: 700; letter-spacing: .1em; }
#rw-app {
  --rw-surface: #151b2b; --rw-surface-2: #20283c; --rw-line: #38435d;
  --rw-gold: #ffd17a; --rw-accent: #b6a7ff;
  padding-top: 32px;
}
.rw-dashboard-head { margin-bottom: 24px; }
.rw-dashboard-head h1 { margin: 0 0 8px; font-size: clamp(1.875rem, 4vw, 2.625rem); line-height: 1.2; letter-spacing: -.04em; font-weight: 700; }
.rw-dashboard-head p { margin: 0; max-width: 64ch; color: var(--rw-muted); }
.rw-overview { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
#rw-app .rw-balance {
  align-items: flex-start; gap: 16px; padding: 24px; border: 1px solid #655a97;
  border-radius: 16px; background: #26213f;
}
#rw-app .rw-balance .rw-mark { width: 44px; height: 44px; }
#rw-app .rw-balance-label { color: #dfd8fa; font-size: .9375rem; font-weight: 600; }
#rw-app .rw-balance-value { color: var(--rw-gold); margin-top: 4px; font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 700; line-height: 1.25; }
#rw-app .rw-balance-inr { margin-top: 8px; color: #e8e2fa; font-size: .9375rem; }
#rw-app .rw-who { font-size: .875rem; margin-top: 10px; }
#rw-app .rw-signout { width: auto; margin-left: auto; padding: 10px 16px; border-color: #897bad; background: #332c4e; }
.rw-next { min-width: 0; padding: 24px; border: 1px solid var(--rw-line); border-radius: 16px; background: var(--rw-surface); }
.rw-next h2 { margin: 0 0 8px; font-size: 1.25rem; line-height: 1.4; font-weight: 700; }
.rw-next p { margin: 8px 0 0; color: var(--rw-muted); font-size: .9375rem; overflow-wrap: anywhere; }
.rw-next progress { display: block; width: 100%; height: 12px; margin: 18px 0 8px; border: 0; border-radius: 12px; overflow: hidden; appearance: none; background: #333d55; color: var(--rw-gold); }
.rw-next progress::-webkit-progress-bar { background: #333d55; border-radius: 12px; }
.rw-next progress::-webkit-progress-value { background: var(--rw-gold); border-radius: 12px; }
.rw-next progress::-moz-progress-bar { background: var(--rw-gold); border-radius: 12px; }
.rw-next a { display: inline-flex; align-items: center; min-height: 48px; color: var(--rw-accent); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.rw-guide { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 24px 0; padding: 0; counter-reset: reward-step; }
.rw-guide li { position: relative; min-width: 0; padding: 4px 0 4px 44px; counter-increment: reward-step; }
.rw-guide li::before { content: counter(reward-step); position: absolute; top: 6px; left: 0; width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid #7362ac; border-radius: 50%; background: #29223f; color: #ded5ff; font-weight: 700; }
.rw-guide b { display: block; color: var(--rw-text); font-size: .9375rem; font-weight: 600; }
.rw-guide span { display: block; margin-top: 3px; color: var(--rw-muted); font-size: .875rem; line-height: 1.55; }
.rw-gate-intro .rw-guide { grid-template-columns: 1fr; gap: 14px; margin-top: 26px; }
#rw-app .rw-mode-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 24px; }
#rw-app .rw-mode-nav a { gap: 16px; padding: 18px 20px; border-color: #65558b; background: #27203c; color: var(--rw-text); }
#rw-app .rw-mode-nav a:first-child { background: #322855; border-color: #967dcc; }
#rw-app .rw-mode-nav a:hover { background: #3c315d; }
#rw-app .rw-mode-nav b { font-size: 1.125rem; font-weight: 700; }
#rw-app .rw-mode-nav small { margin-top: 3px; color: #d7d1e9; font-size: .9375rem; }
#rw-app .rw-mode-nav svg { color: #d0c2ff; width: 28px; height: 28px; }
#rw-app .rw-section-head { margin: 32px 0 16px; align-items: center; }
#rw-app .rw-section-head h2 { font-size: 1.5rem; line-height: 1.3; font-weight: 700; }
#rw-app .rw-section-head p { color: var(--rw-muted); font-size: .9375rem; }
.rw-discovery { display: grid; gap: 16px; margin-bottom: 20px; padding: 20px; border: 1px solid var(--rw-line); border-radius: 14px; background: var(--rw-surface); }
.rw-discovery > label, .rw-discovery .rw-search label { display: block; color: var(--rw-text); font-size: .9375rem; font-weight: 600; }
.rw-discovery input[type='search'] { width: 100%; min-width: 0; padding: 12px 14px; border: 1px solid #697591; border-radius: 10px; background: #0f1523; color: var(--rw-text); font-size: 1rem; }
.rw-discovery input[type='search']::placeholder { color: #b1bdd5; opacity: 1; }
.rw-discovery label + input[type='search'], .rw-discovery .rw-search input { margin-top: 6px; }
.rw-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.rw-filters button { padding: 10px 16px; border: 1px solid #62708a; border-radius: 24px; background: #1b2335; color: #e2e7f4; font-size: .9375rem; font-weight: 600; cursor: pointer; }
.rw-filters button[aria-pressed='true'] { background: #b6a7ff; color: #17112c; border-color: #b6a7ff; }
.rw-filters button:hover:not([aria-pressed='true']) { background: #303953; border-color: #b6a7ff; }
.rw-affordable { display: flex !important; align-items: center; gap: 12px; min-height: 48px; font-size: .9375rem; cursor: pointer; font-weight: 500 !important; }
.rw-affordable input[type='checkbox'] { flex: none; min-height: 0; width: 22px; height: 22px; margin: 0; accent-color: #b6a7ff; }
#rw-result-count { margin: 0; color: var(--rw-muted); font-size: .875rem; }
#rw-app .rw-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
#rw-app .rw-card, #rw-app .rw-card[data-brand] { border: 1px solid var(--rw-line); border-radius: 16px; background: var(--rw-surface); }
#rw-app .rw-art, #rw-app .rw-card[data-brand] .rw-art { display: grid; place-items: center; height: 104px; aspect-ratio: auto; border-bottom: 1px solid var(--rw-line); background: #1e263a; }
#rw-app .rw-art img.rw-brand-icon { width: 56px; height: 56px; margin: 0; object-fit: contain; }
#rw-app .rw-art-fallback { font-size: 1rem; padding: 16px; }
#rw-app .rw-art-fallback span { font-size: .875rem; }
#rw-app .rw-cat { font-size: .875rem; padding: 3px 8px; }
#rw-app .rw-card-body { padding: 20px; }
#rw-app .rw-card-body h3 { font-size: 1.25rem; line-height: 1.4; font-weight: 700; letter-spacing: -.02em; }
#rw-app .rw-card-body > p, #rw-app .rw-category-label { margin: 4px 0 16px; color: var(--rw-muted); font-size: .875rem; line-height: 1.6; }
#rw-app .rw-denoms { gap: 10px; }
#rw-app .rw-denom, #rw-app .rw-card[data-brand] .rw-denom:not(:disabled) { min-height: 64px; padding: 12px 14px; gap: 5px 12px; border: 1px solid #7869a8; border-radius: 10px; background: #2a2342; font-size: 1rem !important; font-weight: 600 !important; line-height: 1.45; }
#rw-app .rw-denom-cost { color: var(--rw-gold); font-size: .875rem; }
#rw-app .rw-denom-status { font-size: .875rem; line-height: 1.5; font-weight: 500; color: #acdcca; }
#rw-app .rw-denom:hover:not(:disabled), #rw-app .rw-card[data-brand] .rw-denom:not(:disabled):hover { background: #3a2d5b; border-color: #c1b0ff; }
#rw-app .rw-denom:disabled { background: #1b2233; border-color: #45516a; }
#rw-app .rw-denom:disabled .rw-denom-status { color: #c0c9dd; }
#rw-app .rw-denom:disabled .rw-denom-cost { color: #d1d8e7; }
#rw-app .rw-empty { padding: 24px; color: var(--rw-muted); border-color: #697591; font-size: 1rem; }
#rw-app .rw-empty b, #rw-app .rw-empty strong { color: var(--rw-text); }
#rw-app .rw-empty button { margin-top: 12px; padding: 10px 18px; border: 1px solid #b6a7ff; border-radius: 10px; background: #b6a7ff; color: #17112c; font: inherit; font-weight: 600; }
#rw-app .rw-payout-layout { display: block; }
#rw-app .rw-payout { padding: 24px; border-radius: 16px; max-width: 720px; margin-top: 20px; }
#rw-app .rw-tabs { flex-wrap: wrap; }
#rw-app .rw-tab { min-width: 8rem; font-size: 1rem !important; }
#rw-app .rw-tab[aria-selected='true'] { background: #b6a7ff; color: #17112c; border-color: #b6a7ff; }
#rw-app .rw-field label { color: #d0d8e9; font-size: .9375rem; }
#rw-app .rw-field input { min-height: 48px; font-size: 1rem; }
#rw-app .rw-cost { font-size: .9375rem; }
#rw-app .rw-payout-btn:not(:disabled) { background: var(--rw-gold); color: #201721; border-color: var(--rw-gold); font-weight: 700 !important; }
#rw-app .rw-payout-btn:disabled { background: #293144; color: #c7d0e3; border-color: #58657e; }
#rw-app .rw-divert { margin-block: 16px; padding: 16px 20px; border-color: #65558b; background: #211d34; }
#rw-app .rw-divert p { font-size: .9375rem; }
#rw-app .rw-divert a { display: inline-flex; align-items: center; min-height: 48px; padding: 10px 16px; font-weight: 700; }
#rw-app .rw-eta { font-size: .9375rem; line-height: 1.7; max-width: 80ch; }
.rw-info { margin-top: 28px; }
#rw-app .rw-note { padding: 20px; border: 1px solid var(--rw-line); border-radius: 14px; background: var(--rw-surface); font-size: .9375rem; }
#rw-app .rw-note summary { display: list-item; padding-block: 8px; color: var(--rw-text); font-size: 1rem; font-weight: 600; cursor: pointer; }
#rw-app .rw-note[open] summary { margin-bottom: 14px; }
#rw-app .rw-note h3 { font-size: 1.125rem; }
#rw-app .rw-note p { max-width: 90ch; }
#rw-app .rw-note a { color: var(--rw-accent); text-decoration: underline; text-underline-offset: 3px; }
#rw-app .rw-consent { background: #211e2e; border-radius: 16px; }
#rw-app .rw-consent p, #rw-app .rw-consent li { font-size: .9375rem; }
#rw-app .rw-consent-check { align-items: center; min-height: 48px; }
#rw-app .rw-consent-check input { min-height: 0; width: 22px; height: 22px; margin-top: 0; }
#rw-app .rw-status { background: #1b2335; font-size: .9375rem; }
#rw-app .rw-status--warn { background: #302029; }
#rw-app .rw-status--ok { background: #172d28; }
#rw-review {
  width: min(520px, calc(100% - 32px)); max-height: calc(100dvh - 32px); margin: auto;
  padding: 24px; border: 1px solid #746392; border-radius: 18px;
  background: #151b2b; color: var(--rw-text); overflow-y: auto; overscroll-behavior: contain;
}
#rw-review::backdrop { background: #080c18bf; }
.rw-review-head { display: flex; align-items: center; gap: 14px; padding-right: 44px; }
.rw-review-head img { width: 48px; height: 48px; object-fit: contain; flex: none; }
.rw-review-head h2 { margin: 0; font-size: 1.375rem; line-height: 1.35; overflow-wrap: anywhere; font-weight: 700; }
.rw-review-head p { margin: 3px 0 0; color: var(--rw-muted); font-size: .875rem; }
#rw-review-close { position: absolute; right: 16px; top: 16px; min-width: 48px; padding: 8px; border: 1px solid #5d6982; border-radius: 10px; background: #20283c; color: var(--rw-text); font-size: 1.25rem; cursor: pointer; }
.rw-review-values { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 20px; margin: 24px 0 20px; padding-block: 20px; border-block: 1px solid var(--rw-line); }
.rw-review-values dt { color: var(--rw-muted); font-size: .9375rem; }
.rw-review-values dd { margin: 0; color: var(--rw-text); text-align: right; font-size: 1rem; font-weight: 600; overflow-wrap: anywhere; }
#rw-review-note { padding: 14px 16px; border: 1px solid #65558b; border-radius: 10px; background: #27203c; color: #e0d9ef; font-size: .9375rem; line-height: 1.7; }
#rw-review-confirm, #rw-review-cancel { width: 100%; margin-top: 12px; padding: 12px 16px; border: 1px solid #b6a7ff; border-radius: 10px; background: #b6a7ff; color: #17112c; font: inherit; font-weight: 700; cursor: pointer; }
#rw-review-cancel { background: #20283c; color: var(--rw-text); border-color: #697591; margin-top: 10px; }
#rw-review-confirm:disabled { background: #293144; color: #c7d0e3; border-color: #58657e; cursor: not-allowed; }
@media (max-width: 940px) {
  #rw-app .rw-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #rw-app .rw-balance { padding: 20px; }
  .rw-next { padding: 20px; }
  #rw-app .rw-signout { flex-basis: 100%; margin-left: 60px; width: auto; }
}
@media (max-width: 700px) {
  .rw-overview { grid-template-columns: 1fr; }
  .rw-guide { grid-template-columns: 1fr; gap: 14px; }
  #rw-app .rw-mode-nav { grid-template-columns: 1fr; gap: 12px; }
  #rw-app .rw-mode-nav a { flex: auto; }
  #rw-app .rw-signout { flex-basis: auto; margin-left: auto; }
  .rw-dashboard-head h1 { font-size: 2rem; }
  .rw-gate { margin-block: 32px 44px; }
}
@media (max-width: 540px) {
  .rw-wrap { padding-inline: 16px; }
  .rw-top { gap: 12px; padding-block: 16px; }
  .rw-nav { width: 100%; justify-content: space-between; gap: 12px; }
  #rw-app { padding-top: 24px; }
  #rw-app .rw-grid { grid-template-columns: 1fr; gap: 16px; }
  #rw-app .rw-card-body { padding: 20px; }
  #rw-app .rw-art, #rw-app .rw-card[data-brand] .rw-art { height: 88px; }
  #rw-app .rw-balance .rw-mark { width: 36px; height: 36px; }
  #rw-app .rw-balance { gap: 12px; }
  #rw-app .rw-signout { flex-basis: 100%; margin-left: 48px; }
  .rw-next { padding: 20px; }
  .rw-discovery { padding: 16px; }
  .rw-filters { gap: 8px; }
  .rw-filters button { flex: 1 1 auto; padding-inline: 12px; }
  #rw-app .rw-section-head { align-items: flex-start; gap: 8px; }
  #rw-app .rw-payout { padding: 20px; }
  #rw-app .rw-divert { padding: 16px; }
  #rw-app .rw-divert a { width: 100%; justify-content: center; }
  #rw-review { padding: 20px; }
  .rw-review-head { gap: 12px; padding-right: 44px; }
  .rw-review-head img { width: 40px; height: 40px; }
  .rw-review-values { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .rewards-page *, .rewards-page *::before, .rewards-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
