.loyalty-wallet{display:grid;gap:14px;margin:0 0 18px}
.loyalty-wallet-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:18px;border-radius:20px;background:linear-gradient(145deg,#073f38,#0d7164);color:#fff;box-shadow:0 12px 28px rgba(7,63,56,.18)}
.loyalty-wallet-head p,.loyalty-wallet-signin p,.loyalty-wallet-empty p{margin:0 0 4px;color:#9ee0d2;font-size:9px;font-weight:900;letter-spacing:.12em}
.loyalty-wallet-head h2,.loyalty-wallet-signin h2,.loyalty-wallet-empty h2{margin:0;font-size:19px;line-height:1.2}
.loyalty-wallet-head span,.loyalty-wallet-signin span,.loyalty-wallet-empty span{display:block;max-width:420px;margin-top:6px;color:#d3e9e4;font-size:10px;line-height:1.5}
.loyalty-wallet-head>div:last-child{flex:0 0 auto;display:grid;text-align:right}
.loyalty-wallet-head>div:last-child strong{font-size:30px;line-height:1}.loyalty-wallet-head>div:last-child small{color:#b9ddd5;font-size:9px}
.loyalty-wallet-signin,.loyalty-wallet-empty{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding:17px;border:1px solid #c6e2da;border-radius:19px;background:#f3faf8;color:#123f38}
.loyalty-wallet-empty{grid-template-columns:auto minmax(0,1fr)}
.loyalty-wallet-signin span,.loyalty-wallet-empty span{color:#647873}
.loyalty-wallet-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#0e7868;color:#fff;font-size:20px}
.loyalty-wallet-signin button{padding:9px 13px;border:0;border-radius:11px;background:#0e7868;color:#fff;font-size:10px;font-weight:850}
.loyalty-card-list{display:grid;gap:11px}
.loyalty-account-card{display:grid;gap:12px;padding:16px;border:1px solid #dce5e2;border-radius:19px;background:#fff;box-shadow:0 6px 18px rgba(22,57,50,.06)}
.loyalty-account-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.loyalty-account-card header p{margin:0;color:#0e7868;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.loyalty-account-card header h3{margin:3px 0 0;font-size:16px}
.loyalty-balance{display:grid;text-align:right}.loyalty-balance strong{color:#0e7868;font-size:27px;line-height:1}.loyalty-balance span{color:#77837f;font-size:8px;font-weight:800}
.loyalty-paused{justify-self:start;padding:5px 8px;border-radius:999px;background:#fff2cc;color:#745900;font-size:8px;font-weight:850}
.loyalty-card-rewards{display:grid;gap:7px}.loyalty-card-rewards>p{margin:0;color:#73817d;font-size:8px;font-weight:900;letter-spacing:.1em}
.loyalty-reward-ready,.loyalty-reward-progress{box-sizing:border-box;width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px;border:1px solid #cfe3dd;border-radius:12px;background:#f4faf8;text-align:left}
.loyalty-reward-ready{cursor:pointer}.loyalty-reward-ready:disabled{opacity:.65}
.loyalty-reward-ready span,.loyalty-reward-progress span{display:grid;gap:2px}
.loyalty-reward-ready strong,.loyalty-reward-progress strong{color:#172824;font-size:10px}
.loyalty-reward-ready small,.loyalty-reward-progress small{color:#71817c;font-size:8px}
.loyalty-reward-ready em,.loyalty-reward-progress em{flex:0 0 auto;color:#0b6c5e;font-size:9px;font-style:normal;font-weight:900}
.loyalty-reward-progress{border-color:#e1e6e4;background:#fafbfb}.loyalty-reward-progress em{color:#7a8581}
.loyalty-no-reward{margin:0;padding:10px;border-radius:10px;background:#f7f9f8;color:#6c7a76;font-size:9px;line-height:1.45}
.loyalty-history{display:grid;gap:5px;margin:0;padding:10px 0 0;border-top:1px solid #e9eeec;list-style:none}
.loyalty-history li{display:flex;align-items:center;justify-content:space-between;gap:10px}
.loyalty-history li span{display:grid;gap:1px}.loyalty-history li strong{font-size:9px}.loyalty-history li small{color:#83908c;font-size:7px}
.loyalty-history li b{color:#0b715f;font-size:10px}.loyalty-history li b.negative{color:#aa4545}
.loyalty-redemption-overlay{position:fixed;z-index:3000;inset:0;display:grid;place-items:end center;padding:16px;background:rgba(3,17,15,.62);backdrop-filter:blur(4px)}
.loyalty-redemption-sheet{box-sizing:border-box;position:relative;width:min(100%,460px);display:grid;justify-items:center;gap:9px;padding:25px 20px calc(24px + env(safe-area-inset-bottom,0px));border-radius:25px 25px 18px 18px;background:#fff;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.28)}
.loyalty-redemption-close{position:absolute;right:13px;top:12px;width:32px;height:32px;border:0;border-radius:50%;background:#eef3f1;color:#40504c;font-size:20px}
.loyalty-redemption-star{width:54px;height:54px;display:grid;place-items:center;border-radius:18px;background:#0e7868;color:#fff;font-size:24px}
.loyalty-redemption-sheet>p{margin:3px 0 0;color:#0e7868;font-size:8px;font-weight:950;letter-spacing:.12em}
.loyalty-redemption-sheet h2{margin:0;font-size:21px}.loyalty-redemption-sheet>span{color:#657570;font-size:10px}
.loyalty-redemption-code{width:100%;margin-top:8px;padding:14px;border:1px dashed #87b9ae;border-radius:13px;background:#f0f9f6;color:#073f38;font-size:24px;letter-spacing:.08em}
.loyalty-redemption-sheet>small{max-width:320px;color:#71807c;font-size:9px;line-height:1.5}
.loyalty-redemption-refresh{width:100%;margin-top:7px;padding:12px;border:0;border-radius:12px;background:#0e7868;color:#fff;font-size:11px;font-weight:900}
.receipt-loyalty-award{display:flex;align-items:center;gap:10px;margin-top:14px;padding:12px;border:1px solid #bfe0d7;border-radius:13px;background:#eff9f6}
.receipt-loyalty-award>span{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:#0e7868;color:#fff}
.receipt-loyalty-award>div{display:grid;gap:2px}.receipt-loyalty-award strong{color:#17443d;font-size:11px}.receipt-loyalty-award small{color:#667a75;font-size:8px;line-height:1.4}
.receipt-loyalty-award.reversed{border-color:#ead3d3;background:#fff6f6}.receipt-loyalty-award.reversed>span{background:#a64c4c}
.receipt-loyalty-award.pending{border-color:#e4dfc4;background:#fffbed}.receipt-loyalty-award.pending>span{background:#8b741c}
@media(min-width:700px){
  .loyalty-card-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .loyalty-redemption-overlay{place-items:center}.loyalty-redemption-sheet{border-radius:25px}
}
@media(max-width:420px){
  .loyalty-wallet-head{align-items:flex-start}.loyalty-wallet-head>div:last-child strong{font-size:25px}
  .loyalty-wallet-signin{grid-template-columns:auto minmax(0,1fr)}.loyalty-wallet-signin button{grid-column:1/-1;width:100%}
}
