/* Reason: a compact shared component keeps loyalty controls consistent across both provider themes. */
.sn-loyalty{--sn-loyalty-accent:#126b65;box-sizing:border-box;width:100%;min-width:0;padding:10px 12px;border:1px solid #cfe3df;border-radius:14px;background:#f5faf8;color:#14344a;font:inherit;text-align:start;line-height:1.55}
.sn-loyalty [hidden],.sn-loyalty[hidden],[data-loyalty-promo][hidden],.sn-loyalty-receipt[hidden]{display:none!important}
.sn-loyalty *, .sn-loyalty *::before,.sn-loyalty *::after{box-sizing:border-box}
.sn-loyalty p{margin:4px 0;font-size:13px;overflow-wrap:anywhere}
/* Reason: keep the compact rewards heading after removing the separate guest login controls. */
.sn-loyalty-heading,.sn-loyalty-title,.sn-loyalty-wallet{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sn-loyalty-heading{justify-content:space-between}.sn-loyalty-heading strong{font-size:14px}.sn-loyalty-title>span{border-radius:20px;padding:1px 8px;background:#dfefea;color:#0c5c56;font-weight:700}
.sn-loyalty .sn-loyalty-help{font-size:12px;color:#526b76}.sn-loyalty-wallet{margin-block:8px}.sn-loyalty-wallet>[data-identity]{direction:ltr;unicode-bidi:isolate;font-size:12px}.sn-loyalty-wallet>strong{font-size:13px}.sn-loyalty-wallet>[data-logout]{margin-inline-start:auto}
.sn-loyalty button{appearance:none;font:inherit;line-height:1.5;cursor:pointer;max-width:100%;white-space:normal;text-align:center;min-height:44px;border-radius:9px;letter-spacing:normal}
.sn-loyalty .sn-loyalty-link{padding:8px 0;border:0;background:transparent;color:var(--sn-loyalty-accent);font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:3px;box-shadow:none}
.sn-loyalty button:disabled{cursor:default;opacity:.55}.sn-loyalty .sn-loyalty-choice{display:flex;align-items:center;gap:10px;min-height:44px;font-size:13px;font-weight:700;margin:0;cursor:pointer}
.sn-loyalty .sn-loyalty-choice input{appearance:auto;display:block;position:static;width:20px;height:20px;min-height:20px;flex:0 0 20px;margin:0;padding:0;accent-color:var(--sn-loyalty-accent)}
.sn-loyalty :is(button,input):focus-visible{outline:3px solid #4b9189;outline-offset:3px}.sn-loyalty-message{color:#126b65}.sn-loyalty-message.is-error{color:#a3262e}
.sn-loyalty-promo{font-size:13px!important;color:#246b61!important;text-align:center;line-height:1.7;margin:12px 0!important}.sn-loyalty-receipt{padding:12px 14px;margin-block:12px;border:1px solid #cfe3df;border-radius:12px;background:#f5faf8;color:#126b65;font-size:14px;line-height:1.8;overflow-wrap:anywhere}
@media(max-width:480px){.sn-loyalty-wallet{column-gap:8px}.sn-loyalty-wallet>strong{flex:1 1 140px}}
/* Reason: show tier choices and code-only verification without restoring the duplicate phone-entry form or shrinking touch targets. */
.sn-loyalty-heading>[data-redeem-entry]{min-width:44px;padding-inline:4px}
.sn-loyalty-tiers{margin-block:2px}.sn-loyalty-tiers>summary{display:list-item;min-height:44px;align-content:center;cursor:pointer;font-size:12px;font-weight:700;color:var(--sn-loyalty-accent)}
.sn-loyalty-tiers>ul{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:4px 0 8px}.sn-loyalty-tiers li{padding:4px 8px;border:1px solid #cfe3df;border-radius:8px;background:white;font-size:12px;white-space:nowrap}
.sn-loyalty-verification{margin-top:8px;padding-top:8px;border-top:1px solid #cfe3df}.sn-loyalty-verification label{display:block;margin-block:5px;font-size:13px;font-weight:700}
.sn-loyalty-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sn-loyalty-actions>[data-otp]{flex:1 1 120px;width:0;min-width:100px;max-width:100%;min-height:44px;padding:8px 10px;border:1px solid #b4cfc9;border-radius:9px;background:#fff;color:#14344a;font:inherit;font-size:16px;letter-spacing:4px;text-align:center}
.sn-loyalty .sn-loyalty-button{min-width:72px;padding:8px 12px;border:1px solid var(--sn-loyalty-accent);background:var(--sn-loyalty-accent);color:white;font:inherit;font-size:13px;font-weight:700;box-shadow:none}.sn-loyalty-verification>[data-close-auth]{display:block;margin-inline-start:auto}
.sn-loyalty [data-reserved]{padding:8px;border-inline-start:3px solid #b1852c;background:#fff9e8;color:#705116}.sn-loyalty-tiers>summary:focus-visible,.sn-loyalty:focus-visible{outline:3px solid #4b9189;outline-offset:3px}
/* Reason: renewed amounts use an inline review beside the existing payable total, with no modal or extra payment request. */
.sn-loyalty-renewal-review{padding:12px;border:1px solid #e1c885;border-radius:12px;background:#fff9e8;color:#705116}.sn-loyalty-renewal-review[hidden]{display:none!important}.sn-loyalty-renewal-review p{margin:0 0 8px;font-size:14px;line-height:1.6}.sn-loyalty-renewal-review button{min-height:44px;padding:8px 12px;border:1px solid #705116;border-radius:8px;background:white;color:inherit;font:inherit;font-weight:700;cursor:pointer}
