.pass-card-logo{display:block;max-width:180px;max-height:80px;object-fit:contain;margin:0 0 12px}.lunch-code .pass-card-logo{margin:0 auto 12px}.pass-stamp-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.pass-stamp-row i{display:block;width:30px;height:30px;border:3px solid var(--pass-accent,#006b57);border-radius:50%}.pass-stamp-row i.is-filled{background:var(--pass-accent,#006b57)}[data-stamp-shape=star] .pass-stamp-row i{clip-path:polygon(50% 0,61% 34%,98% 35%,68% 57%,79% 94%,50% 72%,21% 94%,32% 57%,2% 35%,39% 34%);border:0;background:var(--pass-accent,#006b57);opacity:.3}[data-stamp-shape=star] .pass-stamp-row i.is-filled{background:var(--pass-accent,#006b57);opacity:1}[data-stamp-shape=heart] .pass-stamp-row i{border-radius:50% 50% 45% 45%;transform:rotate(45deg)}[data-stamp-shape=bowling] .pass-stamp-row i::after{content:"🎳";display:grid;place-items:center;font-style:normal;font-size:18px}[data-stamp-shape=coffee] .pass-stamp-row i::after{content:"☕";display:grid;place-items:center;font-style:normal;font-size:18px}.lunch-code{margin:20px 0;padding:24px;text-align:center;max-width:560px}.lunch-code canvas{display:block;width:min(100%,320px);height:auto;margin:16px auto;image-rendering:pixelated}.lunch-code canvas[hidden],[hidden]{display:none!important}#lunch-web-pass{margin:24px 0}#lunch-web-pass .restaurant-card{padding:20px}#lunch-web-pass .result-grid{margin:20px 0}#lunch-web-pass button{min-height:44px}#lunch-web-pass select{display:block;width:100%;min-height:44px;margin:10px 0}#lunch-web-error{padding:16px;background:#ffe7dd;color:#702400;border-radius:12px}.stamp-browser{max-width:660px;margin:24px auto;padding:20px}.stamp-browser input,.stamp-browser select,.stamp-browser textarea{width:100%;font:inherit;min-height:44px;padding:10px;margin:8px 0;box-sizing:border-box}.stamp-browser button{min-height:46px;margin:6px 6px 6px 0}.stamp-browser video{display:block;width:100%;max-height:420px;background:#111;border-radius:12px}.stamp-browser .result{padding:20px;margin:16px 0;border:1px solid #cbd6c6;border-radius:14px}.stamp-browser .balance{font-size:40px;font-weight:700}.stamp-browser .error{background:#ffe7dd;color:#702400;padding:15px}.stamp-browser label{display:block}.stamp-browser .actions{display:flex;flex-wrap:wrap;gap:8px}
.pass-card-reward{font-weight:700}.pass-card-details{border-top:1px solid color-mix(in srgb,var(--pass-text,#153832) 20%,transparent);padding-top:10px;font-size:.9rem}.pass-card-details p{margin:4px 0}
[data-stamp-shape=heart] .pass-stamp-row i{border:0;border-radius:0;transform:none;background:transparent!important}
[data-stamp-shape=heart] .pass-stamp-row i::after{content:"\2661";display:block;width:30px;height:30px;color:var(--pass-accent,#006b57);font:32px/30px Arial,sans-serif;text-align:center}
[data-stamp-shape=heart] .pass-stamp-row i.is-filled::after{content:"\2665"}

@media(max-width:700px){
 #lunch-web-pass .result-grid{grid-template-columns:minmax(0,1fr);justify-items:center}
 #lunch-web-pass .restaurant-card{box-sizing:border-box;width:100%;max-width:390px;min-width:0;margin-inline:auto;text-align:center}
 #lunch-web-pass .pass-card-logo{margin-inline:auto;object-position:center}
 #lunch-web-pass .pass-stamp-row,#lunch-web-pass .pass-actions{justify-content:center}
 #lunch-web-pass .lunch-code{margin-inline:auto}
}

@keyframes pass-reward-pulse{0%,100%{box-shadow:0 0 0 4px #e6a200}50%{box-shadow:0 0 0 1px #e6a20044}}
#lunch-web-pass .is-reward-ready{animation:pass-reward-pulse 1.7s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){#lunch-web-pass .is-reward-ready{animation:none;outline:3px solid #e6a200}}
#lunch-web-code{position:fixed;inset:0;box-sizing:border-box;margin:auto!important;width:min(100vw,560px);height:100dvh;max-height:100dvh;max-width:100vw;padding:12px!important;border:0;display:flex;flex-direction:column;align-items:center;gap:6px;overflow:hidden;border-radius:0}
#lunch-web-code::backdrop{background:#0009}
#lunch-web-code h2,#lunch-web-code p{margin:0;flex-shrink:0;max-width:100%;font-size:14px;line-height:1.25}
#lunch-web-code h2{font-size:19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#lunch-web-code .pass-card-logo{display:none}
#lunch-web-code #lunch-web-qr{flex-shrink:1;min-height:0;object-fit:contain;width:min(100%,360px);max-height:calc(100dvh - 200px);aspect-ratio:1;margin:4px auto}
#lunch-web-code .pass-actions{margin-top:auto;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;flex-shrink:0}
#lunch-web-code .pass-actions button{margin:0}
#lunch-web-code-reward{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.stamp-browser .result.is-redeem{background:#fff2cf;border:3px solid #e49a00}.stamp-browser .redeem-heading{font-size:30px;font-weight:900;color:#854800;margin:0 0 12px}

/* Customer wallet: clear navigation, compact summaries, readable details. */
.customer-page{max-width:980px}.customer-page>h1{font-size:clamp(24px,5vw,36px);line-height:1.2}.wallet-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:5px;border-radius:18px;background:#e4ebe6;position:sticky;top:0;z-index:5}.wallet-tabs button{border:0;border-radius:13px;padding:12px 4px;background:transparent;color:#294c40;font:600 14px/1.3 system-ui;cursor:pointer}.wallet-tabs button[aria-pressed=true]{background:#174f3e;color:#fff;box-shadow:0 3px 9px #143e3520}.wallet-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:28px 0 16px}.wallet-heading h2{font-size:28px;margin:4px 0}.wallet-kicker{letter-spacing:.12em;font-size:11px;font-weight:800;color:#537065;margin:0}.wallet-filters,.wallet-panel,.wallet-signed-out{background:white;border:1px solid #cddbd3;border-radius:20px;padding:20px;margin:16px 0;box-shadow:0 4px 16px #163f3505}.wallet-filters label,.wallet-panel label{display:block;font-weight:600;font-size:14px}.wallet-filters input:not([type=checkbox]),.wallet-panel input:not([type=checkbox]),.wallet-filters select{display:block;width:100%;min-height:46px;border:1px solid #a7bfb2;border-radius:11px;padding:10px 12px;font:inherit;margin:6px 0 14px;box-sizing:border-box;background:white;color:#163f35}.wallet-own{display:flex!important;align-items:center;gap:10px;font-weight:700!important;min-height:44px}.wallet-own input{width:22px;height:22px;accent-color:#174f3e;flex-shrink:0}.wallet-help,.wallet-validity{font-size:13px;color:#50685e;line-height:1.5}.wallet-help{margin:0 0 16px}.wallet-search-row{display:grid;grid-template-columns:1fr minmax(130px,.5fr);gap:14px}#wallet-area{display:flex;gap:10px;align-items:end;flex-wrap:wrap}#wallet-area label{flex:1;min-width:140px}#wallet-area button{margin-bottom:14px}.wallet-list{display:grid;gap:12px;margin:20px 0}.wallet-card{position:relative;border:1px solid #c9d6cd;border-radius:20px;overflow:hidden;background:#fff}.wallet-card.is-active{border-left:5px solid #267258}.wallet-card-open{width:100%;display:flex;gap:16px;padding:20px!important;border:0;background:none;text-align:left;color:#163f35;font:inherit;cursor:pointer}.wallet-logo{width:60px;height:60px;flex:0 0 60px;object-fit:contain;border-radius:14px;background:#f0f5f1}.wallet-monogram{display:grid;place-items:center;font-size:26px;font-weight:800;color:#267258}.wallet-card-body{flex:1;min-width:0;padding-right:20px}.wallet-card h3{margin:7px 0;font-size:19px;line-height:1.35;overflow-wrap:anywhere}.wallet-card p{margin:5px 0}.wallet-reward{font-weight:600;line-height:1.45}.wallet-badge{display:inline-block;border-radius:6px;padding:3px 8px;background:#eef1ed;color:#516258;font-size:11px;font-weight:700}.is-active .wallet-badge{background:#dcefe4;color:#185038}.wallet-card .stamp-count{font-size:14px;font-weight:800;margin-top:12px}.wallet-card progress{width:100%;max-width:280px;height:7px;accent-color:#267258}.wallet-arrow{align-self:center;font-size:28px}.wallet-favorite{position:absolute;top:12px;right:12px;width:44px;min-height:44px;border:0;background:transparent;color:#806100;font-size:26px;cursor:pointer}.wallet-welcome{display:flex;align-items:center;gap:16px;justify-content:space-between;padding:18px 20px;margin-top:20px;border-radius:18px;background:#eaf2e0}.wallet-welcome p{font-size:14px;line-height:1.5;margin:6px 0}.wallet-empty{text-align:center;padding:36px 20px;background:#f0f4ef;border-radius:18px}.wallet-notice{padding:16px;margin:12px 0;border-radius:14px;background:#fff2ce}.wallet-notice summary{cursor:pointer;font-weight:700}.wallet-detail{border:1px solid #cbd9d0;border-radius:24px;padding:20px;width:min(520px,calc(100vw - 32px));max-height:88dvh;box-sizing:border-box;overflow:auto;color:#163f35}.wallet-detail::backdrop{background:#102a25aa}#lunch-web-pass .wallet-expanded{padding:20px;margin-top:12px;max-width:none;text-align:left}.wallet-terms{white-space:pre-wrap;line-height:1.7}.wallet-panel h3{margin-top:0}.wallet-panel p{line-height:1.6}.wallet-panel button{margin:8px 0}.wallet-panel input:focus,.wallet-filters input:focus,.wallet-tabs button:focus-visible,.wallet-card-open:focus-visible{outline:3px solid #40947e;outline-offset:3px}#lunch-web-code{z-index:30}.wallet-signed-out{background:#e9f2eb;border-color:#b7cebd}.wallet-signed-out p{margin-bottom:0}#wallet-count{font-size:13px;color:#50685e;white-space:nowrap}
@media(max-width:520px){.wallet-tabs button{font-size:12px}.wallet-card-open{padding:16px 12px!important;gap:12px}.wallet-logo{width:44px;height:44px;flex-basis:44px;border-radius:11px}.wallet-card h3{font-size:17px}.wallet-card-body{padding-right:16px}.wallet-arrow{display:none}.wallet-search-row{grid-template-columns:minmax(0,1fr)}.wallet-welcome{display:block}.wallet-welcome button{margin-top:8px}.wallet-filters,.wallet-panel{padding:16px}.wallet-card .wallet-validity{font-size:12px}}

.wallet-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0}.wallet-pagination button{flex:1}.wallet-pagination span{white-space:nowrap;font-weight:700}.wallet-pagination button:disabled{opacity:.4;cursor:default}.wallet-qr-button{display:block;margin:0 16px 16px auto;max-width:calc(100% - 32px);background:#174f3e!important;color:white!important}#lunch-web-code:not([open]){display:none!important}#lunch-web-code[open]{background:white!important;color:#163f35!important;max-width:100vw;width:100vw;height:100dvh;padding:16px!important;display:flex;align-items:center;justify-content:center;gap:10px}#lunch-web-code #lunch-web-qr{flex:1;min-height:0;max-height:calc(100dvh - 190px);width:min(100%,500px);max-width:100%;object-fit:contain;margin:0 auto;aspect-ratio:1}#lunch-web-code .pass-actions{margin-top:0}#lunch-web-code h2{max-width:100%;font-size:20px}#lunch-web-code-purpose{font-weight:700}#lunch-web-code-reward{font-size:13px}body:has(#lunch-web-code[open]){overflow:hidden}
@media(orientation:landscape) and (max-height:540px){#lunch-web-code[open]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto auto 1fr auto;padding:12px!important;gap:8px}#lunch-web-code #lunch-web-qr{grid-column:1;grid-row:1 / 6;width:100%;height:calc(100dvh - 24px);max-height:calc(100dvh - 24px);align-self:center}#lunch-web-code h2,#lunch-web-code p,#lunch-web-code .pass-actions{grid-column:2;text-align:center}#lunch-web-code h2{white-space:normal}#lunch-web-code .pass-actions{align-self:end}}

/* A green frame marks an earned reward that is still available to redeem. */
#lunch-web-pass .wallet-card.has-unclaimed-reward,#wallet-detail .wallet-expanded.has-unclaimed-reward{border:3px solid #16834a!important;box-shadow:0 0 0 2px #16834a26}
#lunch-web-pass .has-unclaimed-reward .wallet-badge{background:#dcfce7;color:#14532d}
#lunch-web-code.has-unclaimed-reward[open]{box-shadow:inset 0 0 0 4px #16834a}
#lunch-web-code-reward{-webkit-line-clamp:3}

.wallet-detail-qr{display:block;width:100%;margin:12px 0 18px!important;background:#174f3e!important;color:white!important}.wallet-history{margin:20px 0;border-top:1px solid #cad9d0;padding-top:16px}.wallet-history>button{width:100%}.wallet-history ol{list-style:none;padding:0;margin:12px 0}.wallet-history li{border-bottom:1px solid #cad9d0;padding:12px 0}.wallet-history time{display:block;font-size:14px;margin:5px 0}.wallet-history li p{font-size:14px;margin:4px 0}
