:root{--forest:#1e3a32;--forest-deep:#102b25;--sage:#b7c59b;--sage-dark:#7f966f;--cream:#fff8ea;--paper:#f7f0e2;--gold:#d4a642;--ink:#20332d;--muted:#587066;--line:rgba(30,58,50,.17);--danger:#9d3530;--shadow:0 22px 54px rgba(22,51,44,.14)}
*{box-sizing:border-box}html{background:var(--cream);scroll-behavior:smooth}body.rewards-body{min-width:320px;margin:0;background:radial-gradient(circle at 12% 14%,rgba(212,166,66,.16),transparent 25%),var(--cream);color:var(--ink);font-family:"DM Sans",Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.rewards-skip{position:fixed;left:16px;top:-80px;z-index:20;padding:10px 14px;background:var(--cream);color:var(--forest);font-weight:700}.rewards-skip:focus{top:16px}.rewards-header{display:flex;align-items:center;justify-content:space-between;max-width:1160px;margin:0 auto;padding:24px 28px}.rewards-brand{display:block;width:min(205px,46vw)}.rewards-brand img{display:block;width:100%;height:auto}.text-link,.text-button{border:0;background:transparent;color:var(--forest);font-size:.76rem;font-weight:800;letter-spacing:.1em;text-decoration:none;text-transform:uppercase}.text-link:hover,.text-button:hover{color:#9b6d17}.rewards-shell{width:min(100% - 36px,1000px);margin:22px auto 0;padding-bottom:74px}.rewards-intro{max-width:680px;padding:34px 0 52px}.rewards-kicker{margin:0 0 13px;color:#a97618;font-size:.68rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.rewards-intro h1{margin:0;color:var(--forest);font-family:"Playfair Display",Georgia,serif;font-size:clamp(3.15rem,8vw,6rem);font-weight:600;letter-spacing:-.055em;line-height:.85}.rewards-intro h1 em{color:var(--sage-dark);font-weight:500}.rewards-intro>p:last-child{max-width:540px;margin:24px 0 0;color:var(--muted);font-size:1.04rem;line-height:1.7}.rewards-status{min-height:1.25rem;margin:0 0 18px;color:var(--danger);font-size:.92rem;font-weight:700}.rewards-status:empty{display:none}.rewards-auth,.member-view,.rules-card,.staff-login-card,.staff-view,.owner-view{margin-bottom:36px}.rewards-auth{overflow:hidden;border:1px solid var(--line);background:rgba(255,253,245,.75);box-shadow:var(--shadow)}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}.auth-tab{border:0;padding:17px;background:transparent;color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.auth-tab.is-active{background:var(--forest);color:var(--cream)}.auth-panel{padding:clamp(25px,5vw,52px)}.auth-panel-heading{max-width:620px}.auth-panel h2,.member-view h2,.rules-card h2,.staff-login-card h2,.service-card h3{margin:0;color:var(--forest);font-family:"Playfair Display",Georgia,serif;font-size:clamp(2rem,4vw,3.35rem);font-weight:600;letter-spacing:-.04em;line-height:.96}.auth-panel-heading>p:last-child{margin:16px 0 0;color:var(--muted);line-height:1.65}.rewards-form{display:grid;gap:16px;max-width:590px;margin-top:27px}.rewards-form label{display:grid;gap:7px;color:var(--forest);font-size:.77rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.rewards-form input,.rewards-form select,.rewards-form textarea{width:100%;border:1px solid rgba(30,58,50,.3);border-radius:0;padding:14px 15px;background:#fffdf7;color:var(--forest);font-size:1rem;font-weight:500;letter-spacing:normal;text-transform:none;outline:none}.rewards-form textarea{resize:vertical}.rewards-form input:focus,.rewards-form select:focus,.rewards-form textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,166,66,.2)}.rewards-form .check-row{display:flex;align-items:flex-start;gap:10px;color:var(--muted);font-size:.82rem;font-weight:500;letter-spacing:0;line-height:1.5;text-transform:none}.check-row input{width:18px;height:18px;margin-top:2px;accent-color:var(--forest)}.optional{color:var(--muted);font-size:.7rem;font-weight:600;letter-spacing:.02em;text-transform:none}.field-note{color:var(--muted);font-size:.75rem;font-weight:500;letter-spacing:0;line-height:1.4;text-transform:none}.rewards-button,.outline-button{display:inline-flex;min-height:52px;align-items:center;justify-content:center;gap:12px;border:1px solid var(--gold);padding:14px 20px;background:var(--forest);color:var(--cream);font-size:.73rem;font-weight:800;letter-spacing:.1em;text-align:center;text-decoration:none;text-transform:uppercase;transition:transform .18s ease,background .18s ease,color .18s ease}.rewards-button:hover{background:var(--gold);color:var(--forest);transform:translateY(-2px)}.rewards-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.rewards-button-small{min-height:44px;padding:11px 15px}.outline-button{border-color:var(--forest);background:transparent;color:var(--forest)}.outline-button:hover{background:var(--forest);color:var(--cream)}.form-message{min-height:1.2rem;margin:0;color:var(--danger);font-size:.85rem;font-weight:700;letter-spacing:0;text-transform:none}.form-message.is-success{color:#356b43}.member-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:13px}.member-topline h2{font-size:clamp(1.9rem,4vw,3rem)}.loyalty-card{position:relative;overflow:hidden;padding:clamp(24px,5vw,50px);background:linear-gradient(132deg,var(--forest-deep),var(--forest));color:var(--cream);box-shadow:var(--shadow)}.loyalty-card::after{position:absolute;right:-70px;bottom:-70px;width:245px;height:245px;border:1px solid rgba(212,166,66,.4);border-radius:50%;content:""}.card-brand{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:20px;border-bottom:1px solid rgba(255,248,234,.26)}.card-brand img{width:142px;height:auto}.card-brand p{margin:0;color:var(--gold);font-family:"Playfair Display",Georgia,serif;font-size:1.35rem;font-style:italic}.card-welcome{position:relative;z-index:1;margin:31px 0 8px;color:rgba(255,248,234,.78);font-size:.9rem}.loyalty-card h2{position:relative;z-index:1;margin:0;color:var(--cream);font-family:"Playfair Display",Georgia,serif;font-size:clamp(2rem,5vw,3.55rem);font-weight:600;letter-spacing:-.045em;line-height:.93}.card-copy{position:relative;z-index:1;max-width:530px;margin:16px 0 30px;color:rgba(255,248,234,.76);line-height:1.65}.stamp-ribbon{position:relative;z-index:1;display:grid;grid-template-columns:repeat(6,1fr);gap:9px;max-width:480px;margin-bottom:28px}.stamp{display:grid;aspect-ratio:1;place-items:center;border:1px solid rgba(255,248,234,.45);border-radius:50%;color:rgba(255,248,234,.65);font-family:"Playfair Display",Georgia,serif;font-size:1.12rem}.stamp.is-filled{border-color:var(--gold);background:var(--gold);color:var(--forest);box-shadow:0 0 0 4px rgba(212,166,66,.15)}.card-reward{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:16px 0;border-top:1px solid rgba(255,248,234,.24);border-bottom:1px solid rgba(255,248,234,.24)}.card-reward span{color:rgba(255,248,234,.64);font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.card-reward strong{color:var(--sage);font-family:"Playfair Display",Georgia,serif;font-size:1.23rem;text-align:right}.card-reward.is-ready strong{color:var(--gold)}.member-qr-wrap{position:relative;z-index:1;display:flex;align-items:center;gap:22px;margin-top:28px}.member-qr{flex:0 0 auto;width:126px;padding:8px;background:var(--cream)}.member-qr img{display:block;width:100%;height:auto}.qr-label,.member-code,.qr-note{margin:0}.qr-label{color:var(--cream);font-family:"Playfair Display",Georgia,serif;font-size:1.18rem}.member-code{margin-top:6px;color:var(--gold);font-size:.78rem;font-weight:800;letter-spacing:.12em}.qr-note{max-width:340px;margin-top:7px;color:rgba(255,248,234,.58);font-size:.72rem;line-height:1.45}.install-card{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:16px;padding:23px 25px;border:1px solid var(--line);background:#fffdf7}.install-card h3{margin:0;color:var(--forest);font-family:"Playfair Display",Georgia,serif;font-size:1.6rem;line-height:1}.install-card p:last-child{margin:7px 0 0;color:var(--muted);font-size:.85rem;line-height:1.5}.rules-card{padding:clamp(26px,5vw,48px);border-top:1px solid var(--forest);background:var(--paper)}.rules-card h2{font-size:clamp(2.2rem,5vw,4rem)}.rules-list{display:grid;gap:14px;max-width:760px;margin:27px 0 28px;padding:0;list-style:none}.rules-list li{display:grid;grid-template-columns:38px 1fr;gap:14px;align-items:baseline;color:var(--forest);font-size:1rem;line-height:1.5}.rules-list span{color:var(--gold);font-size:.7rem;font-weight:800;letter-spacing:.1em}.rules-notice{max-width:780px;padding:18px 19px;border-left:3px solid var(--gold);background:rgba(255,253,245,.68);color:var(--muted);line-height:1.55}.rules-notice strong{color:var(--forest)}.rules-notice p{margin:5px 0 0;font-size:.87rem}.rewards-footer{margin:42px auto 0;color:var(--muted);font-size:.82rem;line-height:1.55;text-align:center}.staff-body{background:linear-gradient(118deg,#e9e1cd,var(--cream) 48%,#d7dfbf)}.staff-shell{max-width:1120px}.staff-intro{padding-bottom:39px}.staff-login-card{max-width:620px;padding:clamp(27px,5vw,48px);background:var(--forest);color:var(--cream);box-shadow:var(--shadow)}.staff-login-card h2{color:var(--cream)}.staff-login-card .rewards-kicker{color:var(--gold)}.staff-login-card .rewards-form label{color:var(--cream)}.staff-login-card .rewards-form input{border-color:rgba(255,248,234,.35);background:rgba(255,248,234,.97)}.staff-login-card .rewards-button{background:var(--gold);color:var(--forest)}.staff-login-card .rewards-button:hover{background:var(--cream)}.staff-help{margin:18px 0 0;color:rgba(255,248,234,.67);font-size:.8rem;line-height:1.5}.staff-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:18px}.owner-grid{align-items:start}.service-card{padding:clamp(22px,4vw,38px);background:#fffdf7;box-shadow:0 16px 38px rgba(22,51,44,.1)}.service-card h3{font-size:clamp(1.75rem,3vw,2.7rem)}.service-card>p:not(.rewards-kicker){margin:13px 0 0;color:var(--muted);font-size:.93rem;line-height:1.6}.scanner-controls{display:flex;align-items:center;gap:16px;margin:24px 0 0}.scanner-stage{overflow:hidden;margin-top:15px;background:#0f2822;color:var(--cream)}.scanner-stage video{display:block;width:100%;max-height:280px;object-fit:cover}.scanner-stage p{margin:0;padding:10px 13px;color:rgba(255,248,234,.75);font-size:.78rem}.lookup-form{display:grid;gap:12px;margin-top:23px}.lookup-form label{display:grid;gap:7px;color:var(--forest);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.lookup-form input{border:1px solid rgba(30,58,50,.3);padding:13px;background:#fffdf7;color:var(--forest);outline:none}.lookup-form input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,166,66,.2)}.member-action{display:grid;gap:16px;margin-top:23px}.member-action-summary{display:grid;gap:7px;padding:16px;border-left:3px solid var(--gold);background:var(--paper)}.member-action-summary strong{color:var(--forest);font-family:"Playfair Display",Georgia,serif;font-size:1.35rem}.member-action-summary span{color:var(--muted);font-size:.84rem}.action-buttons{display:grid;gap:11px}.redeem-button{border-color:var(--gold);background:var(--gold);color:var(--forest)}.recent-card{margin-top:18px}.recent-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.activity-list,.staff-list{display:grid;gap:0;margin-top:20px}.activity-row,.staff-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 0;border-top:1px solid var(--line)}.activity-row:first-child,.staff-row:first-child{border-top:1px solid var(--line)}.activity-row strong,.staff-row strong{display:block;color:var(--forest);font-size:.91rem}.activity-row span,.staff-row span{display:block;margin-top:4px;color:var(--muted);font-size:.75rem;line-height:1.4}.activity-state{flex:0 0 auto;color:var(--forest);font-size:.7rem;font-weight:800;letter-spacing:.07em;text-align:right;text-transform:uppercase}.activity-state.redeem{color:#946b18}.empty-state{color:var(--muted);font-size:.9rem;line-height:1.6}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.metric{padding:21px 18px;background:var(--forest);color:var(--cream)}.metric strong{display:block;color:var(--gold);font-family:"Playfair Display",Georgia,serif;font-size:2.2rem;line-height:1}.metric span{display:block;margin-top:9px;color:rgba(255,248,234,.73);font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.compact-form{margin-top:22px}.staff-row .outline-button{min-height:36px;padding:8px 10px;font-size:.62rem}.staff-row .outline-button.is-inactive{border-color:#98726e;color:#8f514b}.install-note{margin-top:8px!important;color:var(--sage-dark)!important;font-size:.77rem!important;font-weight:700!important}.rewards-footer [data-network-status]{font-weight:800;color:var(--sage-dark)}.member-action .check-row{display:flex;align-items:flex-start;gap:10px;color:var(--muted);font-size:.78rem;line-height:1.45}.member-action .check-row input{width:18px;height:18px;flex:0 0 auto;margin-top:2px;accent-color:var(--forest)}@media (max-width:760px){.rewards-header{padding:16px 18px}.rewards-shell{width:min(100% - 28px,1000px);margin-top:10px}.rewards-intro{padding:28px 0 37px}.member-qr-wrap{align-items:flex-start;flex-direction:column}.member-qr{width:150px}.stamp-ribbon{gap:7px}.install-card{align-items:flex-start;flex-direction:column}.install-card .rewards-button{width:100%}.staff-grid,.owner-grid{grid-template-columns:1fr}.metrics-grid{grid-template-columns:repeat(2,1fr)}.staff-intro{padding-bottom:28px}.card-reward{align-items:flex-start;flex-direction:column;gap:6px}.card-reward strong{text-align:left}.activity-row,.staff-row{align-items:flex-start;flex-direction:column;gap:8px}.activity-state{align-self:stretch;text-align:left}.staff-row .outline-button{width:100%}}@media (max-width:420px){.rewards-header .text-link{font-size:.63rem}.rewards-brand{width:170px}.auth-panel{padding:24px 18px}.loyalty-card{padding:25px 20px}.card-brand img{width:126px}.stamp{font-size:.92rem}.member-qr-wrap{gap:15px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Browser-only Rewards card: no app installation is required. */
.browser-card{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:16px;padding:23px 25px;border:1px solid var(--line);background:#fffdf7}.browser-card h3{margin:0;color:var(--forest);font-family:"Playfair Display",Georgia,serif;font-size:1.6rem;line-height:1}.browser-card p:last-child{margin:7px 0 0;color:var(--muted);font-size:.85rem;line-height:1.5}.browser-card-mark{display:grid;flex:0 0 auto;width:48px;height:48px;place-items:center;border:1px solid var(--gold);border-radius:50%;color:var(--forest);background:rgba(212,166,66,.18);font-size:1.35rem}@media (max-width:760px){.browser-card{align-items:flex-start;flex-direction:column}.browser-card-mark{width:42px;height:42px}}


/* Shared Rewards Wallet: one QR identity, two independent cards. */
.wallet-welcome{margin:0 0 18px;color:var(--muted);font-size:.94rem;line-height:1.6}.wallet-welcome strong{color:var(--forest)}
.reward-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 14px}.reward-tab{display:flex;align-items:center;justify-content:center;gap:10px;min-height:58px;border:1px solid var(--line);background:#fffdf7;color:var(--forest);font-size:.73rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.reward-tab:hover{border-color:var(--gold)}.reward-tab.is-active{border-color:var(--forest);background:var(--forest);color:var(--cream)}.reward-tab:nth-child(2).is-active{border-color:#8c5037;background:#6c3f2f;color:#fff6eb}.reward-tab-icon{display:grid;place-items:center;font-size:1.35rem;line-height:1}.reward-panels{min-height:510px}.loyalty-card[hidden]{display:none}.loyalty-card h3{position:relative;z-index:1;margin:0;color:var(--cream);font-family:"Playfair Display",Georgia,serif;font-size:clamp(2rem,5vw,3.55rem);font-weight:600;letter-spacing:-.045em;line-height:.93}.card-icon{display:inline-grid;place-items:center;margin-right:7px;font-size:1.2em;font-style:normal;vertical-align:-.08em}.hot-card{background:linear-gradient(132deg,#4b2c26,#7c4935);box-shadow:0 22px 54px rgba(103,59,42,.2)}.hot-card::after{border-color:rgba(231,177,115,.48)}.hot-card .card-brand{border-bottom-color:rgba(255,246,235,.28)}.hot-card .card-brand p{color:#e7b173}.hot-card .card-welcome,.hot-card .card-copy{color:rgba(255,246,235,.78)}.hot-card .stamp{border-color:rgba(255,246,235,.5);color:rgba(255,246,235,.68)}.hot-card .stamp.is-filled{border-color:#d98d5f;background:#d98d5f;color:#4b2c26;box-shadow:0 0 0 4px rgba(217,141,95,.18)}.hot-card .card-reward{border-color:rgba(255,246,235,.28)}.hot-card .card-reward span{color:rgba(255,246,235,.65)}.hot-card .card-reward strong{color:#e7b173}.hot-card .card-reward.is-ready strong{color:#ffd08b}.wallet-qr{margin-top:18px;padding:22px 24px;background:var(--forest-deep)}.wallet-qr .qr-label{font-size:1.1rem}.wallet-qr .qr-note{max-width:470px}.responsible-notice{margin-top:14px}.group-policy{margin:16px 0 0;padding:13px 15px;border-left:3px solid var(--gold);background:rgba(255,253,245,.72);color:var(--muted);font-size:.82rem;line-height:1.5}.category-select{display:grid;gap:7px;color:var(--forest);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.category-select select{border:1px solid rgba(30,58,50,.3);padding:13px;background:#fffdf7;color:var(--forest);outline:none}.wine-confirmation[hidden]{display:none}.hot-confirmation{padding:13px 15px;border-left:3px solid #d98d5f;background:#f5e4d6;color:#6c3f2f;font-size:.82rem;line-height:1.5}.activity-state.hot_beverage{color:#8c5037}.activity-state.stamp.hot_beverage{color:#8c5037}
@media (max-width:760px){.reward-tabs{grid-template-columns:1fr;gap:8px}.reward-tab{justify-content:flex-start;padding:0 18px}.reward-panels{min-height:0}.wallet-qr{padding:20px 18px}}

/* Two-programme owner metrics. */
.metrics-grid{grid-template-columns:repeat(3,1fr)}
@media (max-width:760px){.metrics-grid{grid-template-columns:repeat(2,1fr)}}
