:root{--navy:#001f49;--navy2:#00336f;--blue:#129af0;--sky:#dff4ff;--orange:#e17617;--cream:#f7f4ed;--ink:#061643;--muted:#667286;--white:#fff;--line:#dce4ed;--shadow:0 18px 48px rgba(0,31,73,.14);font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--cream)}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 50% -10%,#fff 0,#f6f8fa 43%,#edf2f6 100%);color:var(--ink)}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:3px}.app-shell{min-height:100vh;padding-bottom:104px}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1180px;margin:auto;padding:12px clamp(16px,4vw,36px);background:rgba(255,255,255,.92);border-bottom:1px solid rgba(0,31,73,.08);backdrop-filter:blur(16px)}.logo-button{width:174px;padding:0;border:0;background:none}.logo-button img{display:block;width:100%;height:58px;object-fit:contain}.scan-button,.primary-button,.secondary-button,.promo-card button{min-height:46px;border-radius:999px;border:0;padding:11px 20px;font-weight:900}.scan-button,.primary-button{background:var(--blue);color:#fff;box-shadow:0 8px 20px rgba(18,154,240,.25)}.scan-button span{font-size:1.25rem}main{width:min(1120px,100%);margin:auto;padding:clamp(18px,4vw,38px)}.view{display:none}.view.active{display:block}.eyebrow{margin:0 0 6px;color:var(--blue);font-size:.72rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.greeting-row,.section-heading,.page-header,.balance-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.greeting-row{margin-bottom:18px}.greeting-row h1,.page-header h1{margin:0;font-size:clamp(2rem,6vw,4.4rem);line-height:.94;letter-spacing:-.04em}.tier-pill{padding:9px 14px;border-radius:999px;background:var(--sky);color:var(--navy);font-weight:900;text-transform:uppercase}.balance-card{padding:clamp(22px,5vw,42px);border-radius:28px;background:linear-gradient(135deg,var(--navy),#002b63 64%,#07518c);color:#fff;box-shadow:var(--shadow)}.balance-top>div{display:grid;gap:5px}.balance-top strong{font-size:clamp(2.5rem,7vw,5.3rem);line-height:.82}.balance-top small{font-size:.36em}.balance-top div>span:last-child{font-size:.7rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#bce7ff}.balance-brand{place-items:center;text-align:center}.balance-brand b{font-size:clamp(.8rem,2vw,1.3rem);line-height:.95}.cup-mark{display:grid!important;place-items:center;width:52px;height:52px;border:4px solid var(--blue);border-radius:50%;color:#fff!important;font-size:1.9rem!important;font-weight:900}.dollars{text-align:right}.progress{height:16px;margin:28px 0 16px;border-radius:999px;overflow:hidden;background:#071427}.progress span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),#6bd0ff);transition:width .35s ease}.balance-card>p{margin:0;color:#fff;font-size:clamp(1rem,2.5vw,1.35rem);font-weight:900}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0 32px}.quick-actions button{position:relative;display:grid;place-items:center;gap:8px;min-width:0;padding:8px;border:0;background:none;color:var(--ink)}.quick-actions b{font-size:.9rem}.quick-actions em{position:absolute;top:0;right:10%;min-width:28px;padding:5px 7px;border-radius:999px;background:var(--orange);color:#fff;font-size:.72rem;font-style:normal;font-weight:900}.quick-icon{display:grid;place-items:center;width:66px;height:66px;border-radius:22px;background:var(--sky);color:var(--navy);font-size:2rem;font-weight:900;box-shadow:0 8px 20px rgba(0,31,73,.08)}.gift{background:#fff0da;color:var(--orange)}.coffee{background:var(--navy);color:#fff}.card-icon{background:var(--blue);color:#fff}.section-block{margin-top:10px}.section-heading{margin-bottom:14px}.section-heading h2,.activity-card h2,.auth-panel h2,.bottom-sheet h2{margin:0;font-size:clamp(1.55rem,4vw,2.5rem);line-height:1}.promo-scroll{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.promo-card{position:relative;min-height:420px;overflow:hidden;border-radius:25px;background:var(--navy);box-shadow:var(--shadow)}.promo-card img{width:100%;height:100%;min-height:420px;display:block;object-fit:cover}.promo-card:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(0,16,40,.95))}.promo-card>div{position:absolute;left:24px;right:24px;bottom:24px;z-index:2;color:#fff}.promo-card span{font-size:.75rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.promo-card h3{max-width:400px;margin:7px 0 16px;font-size:clamp(1.8rem,4vw,3.2rem);line-height:.92}.promo-card button{background:#fff;color:var(--navy)}.activity-card,.auth-panel,.reward{margin-top:22px;padding:clamp(20px,4vw,34px);border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 10px 34px rgba(0,31,73,.08)}.text-button{border:0;background:none;color:var(--blue);font-weight:900}.danger{color:#b62929}.activity-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:16px 0;border-top:1px solid var(--line)}.activity-row:first-child{border-top:0}.activity-row b{display:block;margin-bottom:5px}.activity-row p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.45}.activity-row>span{color:var(--blue);font-weight:900}.page-header{justify-content:flex-start;margin-bottom:24px}.back-button{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--navy);font-size:1.5rem}.points-strip{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-radius:18px;background:var(--navy);color:#fff}.points-strip strong{font-size:1.2rem}.reward-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.reward{display:grid;grid-template-columns:60px minmax(0,1fr) auto;align-items:center;gap:16px;margin-top:0}.reward-icon{display:grid;place-items:center;width:60px;height:60px;border-radius:18px;background:var(--sky);font-size:1.7rem}.reward h2{margin:0 0 5px;font-size:1.25rem}.reward p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.4}.reward-meta{display:grid;justify-items:end;gap:8px}.reward-cost{color:var(--orange);font-weight:900;white-space:nowrap}.reward button{min-height:38px;padding:8px 13px;border:0;border-radius:999px;background:var(--navy);color:#fff;font-weight:900}.reward.locked{opacity:.65}.auth-panel{display:grid;grid-template-columns:.8fr 1.2fr;gap:32px;align-items:start}.auth-copy p:last-child,.sheet-intro{color:var(--muted);line-height:1.55}.auth-form{display:grid;grid-template-columns:1fr 1fr;gap:13px}.auth-form label{display:grid;gap:6px;color:var(--muted);font-size:.75rem;font-weight:900;text-transform:uppercase}.auth-form label:first-child{grid-column:1/-1}.auth-form input{width:100%;min-height:50px;padding:12px 14px;border:2px solid var(--line);border-radius:13px;background:#f7f9fb;color:var(--ink)}.secondary-button{border:2px solid var(--blue);background:#fff;color:var(--blue)}.bottom-nav{position:fixed;left:50%;bottom:0;z-index:25;display:grid;grid-template-columns:1fr 1fr 1fr;width:min(680px,100%);padding:10px max(18px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));transform:translateX(-50%);background:rgba(255,255,255,.96);border:1px solid var(--line);border-bottom:0;border-radius:24px 24px 0 0;box-shadow:0 -10px 30px rgba(0,31,73,.1);backdrop-filter:blur(18px)}.bottom-nav button{display:grid;place-items:center;gap:2px;border:0;background:none;color:var(--muted);font-size:.72rem;font-weight:900}.bottom-nav button span{font-size:1.55rem}.bottom-nav button.active{color:var(--blue)}.bottom-nav .scan-tab{width:100px;min-height:70px;justify-self:center;margin-top:-28px;border-radius:22px;background:var(--blue);color:#fff;box-shadow:0 10px 24px rgba(18,154,240,.3)}.bottom-sheet{width:min(680px,100%);max-width:none;margin:auto auto 0;padding:0;border:0;border-radius:30px 30px 0 0;color:var(--ink);box-shadow:0 -18px 60px rgba(0,0,0,.22)}.bottom-sheet::backdrop{background:rgba(0,16,40,.66);backdrop-filter:blur(3px)}.bottom-sheet[open]{animation:slideUp .22s ease}.sheet-handle{width:64px;height:6px;margin:12px auto 0;border-radius:999px;background:#d4d9df}.sheet-close{position:absolute;top:18px;right:20px;width:44px;height:44px;border:0;border-radius:50%;background:#edf1f5;color:var(--navy);font-size:1.8rem}.sheet-content{padding:30px clamp(22px,6vw,52px) max(34px,env(safe-area-inset-bottom))}.barcode-wrap{display:grid;place-items:center;gap:12px;margin:24px 0;padding:22px 12px;border:2px solid var(--line);border-radius:20px;background:#fff}.barcode-wrap svg{width:100%;height:150px}.barcode-wrap strong{font-size:.78rem;letter-spacing:.15em;overflow-wrap:anywhere}.card-sheet-content>.primary-button,.sheet-content>.primary-button{width:100%}.stamp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}.stamp{aspect-ratio:1;display:grid;place-items:center;border:2px dashed var(--blue);border-radius:50%;background:var(--sky);color:var(--blue);font-size:.72rem;font-weight:900}.stamp.filled{border-style:solid;background:var(--blue);color:#fff}.stamp.free{border-color:var(--orange);background:#fff6ea;color:var(--orange)}.stamp.free.filled{background:var(--orange);color:#fff}.toast{position:fixed;left:50%;bottom:106px;z-index:60;width:max-content;max-width:calc(100vw - 32px);padding:13px 18px;transform:translate(-50%,20px);opacity:0;border-radius:999px;background:#071427;color:#fff;font-weight:800;transition:.2s}.toast.show{transform:translate(-50%,0);opacity:1}@keyframes slideUp{from{transform:translateY(45px);opacity:0}to{transform:none;opacity:1}}
@media(max-width:720px){.app-header{padding:9px 14px}.logo-button{width:136px}.logo-button img{height:47px}.scan-button{min-height:40px;padding:8px 14px;font-size:.82rem}main{padding:18px 14px}.greeting-row{align-items:flex-end}.tier-pill{font-size:.65rem}.balance-card{padding:22px 18px;border-radius:22px}.balance-brand{display:none!important}.quick-actions{gap:2px}.quick-actions button{padding:6px 1px}.quick-icon{width:55px;height:55px;border-radius:18px;font-size:1.5rem}.quick-actions b{font-size:.72rem}.promo-scroll{display:flex;gap:13px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 2px 18px}.promo-card{flex:0 0 84%;min-height:390px;scroll-snap-align:start}.promo-card img{min-height:390px}.reward-grid{grid-template-columns:1fr}.reward{grid-template-columns:52px minmax(0,1fr);padding:17px}.reward-icon{width:52px;height:52px}.reward-meta{grid-column:1/-1;width:100%;grid-template-columns:1fr auto;align-items:center;justify-items:start}.auth-panel{grid-template-columns:1fr;gap:18px}.auth-form{grid-template-columns:1fr}.auth-form label:first-child{grid-column:auto}.page-header h1{font-size:2.15rem}.activity-card{padding:20px 17px}.bottom-nav{border-radius:0}.stamp-grid{gap:9px}}@media(max-width:390px){.balance-top strong{font-size:2.25rem}.balance-card>p{font-size:.9rem}.quick-icon{width:49px;height:49px}.quick-actions em{right:2%}}

.membership-terms{grid-column:1/-1;margin:2px 0 0;color:var(--muted);font-size:.7rem;line-height:1.55;text-align:center}.membership-terms a,.app-footer a{color:var(--blue);text-underline-offset:3px}.app-footer{display:flex;justify-content:center;align-items:center;gap:8px 18px;flex-wrap:wrap;margin:34px 0 4px;padding:22px 12px;color:#7a8793;font-size:.68rem;text-align:center}.app-footer a{font-weight:800}.terms-body{background:#f5f8fb}.terms-page{width:min(820px,100%);margin:0 auto;padding:38px 24px 80px;color:var(--ink);font-size:1rem;line-height:1.75}.terms-page p{margin:0 0 18px}.terms-page h1{margin:15px 0 8px;font-size:clamp(2.2rem,7vw,4rem);line-height:1;letter-spacing:-.045em}.terms-page h2{margin:38px 0 12px;font-size:1.45rem;line-height:1.25}.terms-page a{color:#087fc5;text-underline-offset:3px}.terms-logo{display:block;width:176px;height:64px;object-fit:contain;margin:28px 0 22px}.terms-back{font-weight:800;text-decoration:none}.terms-back:hover{text-decoration:underline}.terms-back-bottom{display:inline-block;margin-top:24px}.terms-date{color:var(--muted);font-size:.85rem}.terms-summary{margin:30px 0;padding:8px 25px 20px;border-left:5px solid var(--orange);border-radius:18px;background:#fff3e4;box-shadow:0 10px 30px rgba(0,31,73,.06)}.terms-summary h2{margin-top:20px}.terms-summary ul{padding-left:21px}.terms-summary li{margin:9px 0}@media(max-width:720px){.terms-page{padding:24px 20px 65px}.terms-logo{margin-top:20px}.terms-summary{padding:8px 18px 16px}.app-footer{margin-top:24px;padding-bottom:12px}}
.balance-card>.points-expiry{margin-top:10px;color:#bce7ff;font-size:.72rem;font-weight:700;line-height:1.45}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.recovery-form{display:grid;gap:14px;margin-top:22px}.recovery-form label{display:grid;gap:7px;color:var(--muted);font-size:.75rem;font-weight:900;text-transform:uppercase}.recovery-form input{width:100%;min-height:50px;padding:12px 14px;border:2px solid var(--line);border-radius:13px;background:#f7f9fb;color:var(--ink)}.recovery-form .primary-button{width:100%}.auth-form label small{font-size:.65rem;font-weight:700;text-transform:none}.auth-link{align-self:center}.legal-note{margin-top:38px!important;padding:18px;border-radius:14px;background:#eaf6ff;color:#405465}

/* Click & collect */
.bottom-nav{grid-template-columns:repeat(5,1fr);width:min(820px,100%)}
.bottom-nav button{min-width:0;padding:4px 2px}.bottom-nav button span{font-size:1.35rem}.bottom-nav button:nth-child(3){width:88px;min-height:66px;justify-self:center;margin-top:-25px;border-radius:22px;background:var(--navy);color:#fff;box-shadow:0 10px 24px rgba(0,31,73,.25)}
.order-notice{display:flex;gap:14px;align-items:flex-start;padding:18px 20px;margin-bottom:20px;border:1px solid #f0c58e;border-radius:18px;background:#fff6ea}.order-notice.ready{border-color:#9bd6b0;background:#ebfff2}.order-notice h2{margin:0 0 5px;font-size:1.05rem}.order-notice p{margin:0;color:var(--muted);line-height:1.45}.status-dot{flex:none;width:12px;height:12px;margin-top:5px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 5px rgba(225,118,23,.12)}.order-notice.ready .status-dot{background:#1f9c50;box-shadow:0 0 0 5px rgba(31,156,80,.12)}
.order-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:20px;align-items:start}.field-label,.checkout-form label{display:grid;gap:7px;color:var(--muted);font-size:.75rem;font-weight:900;text-transform:uppercase}.order-layout select,.checkout-form input,.checkout-form select{width:100%;min-height:50px;padding:11px 13px;border:2px solid var(--line);border-radius:13px;background:#fff;color:var(--ink)}.menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:18px}.menu-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:17px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 25px rgba(0,31,73,.06)}.menu-item h3{margin:0 0 5px;font-size:1rem}.menu-item p{margin:0;color:var(--muted);font-size:.78rem}.menu-item button{align-self:end;min-height:38px;padding:7px 12px;border:0;border-radius:999px;background:var(--blue);color:#fff;font-weight:900}.cart-card,.empty-card,.order-card{padding:20px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 10px 34px rgba(0,31,73,.08)}.cart-card{position:sticky;top:100px}.cart-card h2,.empty-card h2,.order-card h2{margin:0}.cart-items{display:grid;gap:10px;margin:14px 0}.cart-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.cart-row button{width:30px;height:30px;border:0;border-radius:50%;background:#edf3f8;color:var(--navy);font-weight:900}.empty-copy,.empty-card p,.secure-note{color:var(--muted);line-height:1.5}.checkout-form{display:grid;gap:11px;margin-top:16px}.checkout-form .primary-button:disabled{opacity:.5;cursor:not-allowed}.secure-note{font-size:.72rem}.orders-list{display:grid;gap:14px}.order-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.order-card .order-state{display:inline-block;margin:8px 0;padding:6px 10px;border-radius:999px;background:var(--sky);color:var(--navy);font-size:.72rem;font-weight:900;text-transform:capitalize}.order-card dl{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}.order-card dt{color:var(--muted);font-size:.68rem;text-transform:uppercase}.order-card dd{margin:3px 0 0;font-weight:900}.order-actions{display:flex;gap:9px;flex-wrap:wrap}.order-actions button{min-height:40px;padding:8px 13px;border:0;border-radius:999px;background:var(--navy);color:#fff;font-weight:900}.order-actions button.secondary{background:#eaf3f9;color:var(--navy)}
@media(max-width:780px){.bottom-nav{padding-left:8px;padding-right:8px}.bottom-nav button{font-size:.6rem}.bottom-nav button span{font-size:1.2rem}.bottom-nav button:nth-child(3){width:70px}.order-layout{grid-template-columns:1fr}.cart-card{position:static}.menu-grid{grid-template-columns:1fr}.order-card dl{grid-template-columns:1fr 1fr}}
