.public-booking-overlay{z-index:92;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#17101faa;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.public-booking{text-align:left;background:#fff;border-radius:24px;width:min(550px,100%);max-height:calc(100vh - 32px);overflow:auto;box-shadow:0 30px 90px #09060d66}.public-booking>header{color:#fff;background:#17121d;justify-content:space-between;padding:22px 24px 18px;display:flex}.public-booking header small{color:var(--acid);letter-spacing:1px;font-size:8px;font-weight:900}.public-booking h2{margin:5px 0;font-size:25px}.public-booking header p{color:#9c94a0;margin:0;font-size:10px}.public-booking header button{color:#aaa2ae;background:#302a35;border:0;border-radius:9px;align-self:flex-start;width:31px;height:31px;font-size:20px}.public-booking form{padding:19px 23px 22px}.public-booking label{margin-bottom:12px;font-size:10px;font-weight:800;display:block}.public-booking input,.public-booking select{box-sizing:border-box;width:100%;font:inherit;border:1px solid #ddd8e2;border-radius:10px;outline:0;margin-top:5px;padding:11px;display:block}.public-booking input:focus,.public-booking select:focus{border-color:var(--purple);box-shadow:0 0 0 3px color-mix(in srgb,var(--purple) 14%,transparent)}.booking-fields{grid-template-columns:1fr 1fr;gap:9px;display:grid}.public-booking fieldset{border:0;margin:4px 0 15px;padding:0}.public-booking legend{margin-bottom:7px;font-size:10px;font-weight:800}.booking-slots{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.booking-slots button{color:#615a66;background:#fff;border:1px solid #ddd8e2;border-radius:9px;padding:8px 4px;font-size:10px}.booking-slots button.selected{border-color:var(--purple);background:var(--purple);color:#fff}.booking-slots button.occupied,.booking-slots button.occupied:disabled{color:#a64b5e;cursor:not-allowed;opacity:1;background:#fff0f3;border-color:#efb7c1;text-decoration:line-through}.booking-slots-legend{color:#8c5b65;align-items:center;gap:6px;margin-top:8px;font-size:11px;display:flex}.booking-slots-legend i{background:#d96a7f;border-radius:50%;width:8px;height:8px}.booking-summary{background:#f5f2f7;border-radius:11px;justify-content:space-between;padding:11px;font-size:11px;display:flex}.booking-error{color:#b03b53;background:#fff0f3;border-radius:9px;padding:9px;font-size:10px}.booking-submit,.booking-success button{background:var(--purple);color:#fff;border:0;border-radius:10px;width:100%;margin-top:12px;padding:12px;font-weight:850}.booking-submit:disabled{opacity:.5}.booking-safe{text-align:center;color:#aaa3ad;font-size:8px}.booking-success{text-align:center;padding:38px 28px}.booking-success>span{color:#617d0e;background:#ebf9bd;border-radius:50%;place-items:center;width:58px;height:58px;margin:0 auto 14px;font-size:25px;display:grid}.booking-success>small{color:#684dd0;letter-spacing:1px;font-size:8px;font-weight:900}.booking-success p{color:#716a76;text-transform:capitalize;font-size:12px}.booking-success>b{color:#8b8490;font-size:10px;display:block}@media (max-width:520px){.public-booking-overlay{align-items:end;padding:0}.public-booking{border-radius:24px 24px 0 0;max-height:94vh}.booking-fields{grid-template-columns:1fr}.booking-slots{grid-template-columns:repeat(3,1fr)}}
.public-booking select{text-overflow:ellipsis;white-space:nowrap;appearance:none;background:#fff linear-gradient(45deg,#0000 50%,#756d7a 50%) calc(100% - 17px) 19px/5px 5px no-repeat;max-width:100%;height:44px;min-height:44px;padding:0 38px 0 11px}.booking-calendar{background:#fbfafc;border:1px solid #e6e1e9;border-radius:15px;margin:2px 0 15px;padding:12px}.booking-calendar>header{grid-template-columns:32px 1fr 32px;align-items:center;margin-bottom:10px;display:grid}.booking-calendar>header strong{text-align:center;text-transform:capitalize;font-size:13px}.booking-calendar>header button{color:#625a68;background:#fff;border:1px solid #e2dce6;border-radius:9px;width:30px;height:30px;font-size:20px}.calendar-weekdays,.calendar-days{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-weekdays span{text-align:center;color:#968e9a;padding:3px;font-size:9px;font-weight:850}.calendar-days button{color:#29222e;background:0 0;border:0;border-radius:9px;min-height:38px;position:relative}.calendar-days button b{font-size:11px;font-weight:750}.calendar-days button i{background:var(--purple);border-radius:50%;width:4px;height:4px;position:absolute;bottom:5px;left:calc(50% - 2px)}.calendar-days button:hover:not(:disabled){color:var(--purple);background:#f0ebff}.calendar-days button.selected{background:var(--purple);color:#fff;box-shadow:0 6px 14px color-mix(in srgb,var(--purple) 25%,transparent)}.calendar-days button.selected i{background:var(--acid)}.calendar-days button:disabled{color:#cec8d1;cursor:not-allowed}.calendar-days button.outside{opacity:.25}.booking-calendar>small{color:#8d8591;align-items:center;gap:6px;margin-top:9px;font-size:8px;display:flex}.booking-calendar>small i{background:var(--purple);border-radius:50%;width:5px;height:5px}.booking-step-hint{color:#746c78;text-align:center;background:#faf8fb;border:1px dashed #dcd4e2;border-radius:12px;margin:2px 0 14px;padding:14px;font-size:10px}.booking-no-slots{color:#9a5564;text-align:center;background:#fff2f4;border-radius:9px;padding:10px;font-size:10px}@media (max-width:520px){.calendar-days button{min-height:36px}.booking-calendar{padding:10px}.public-booking select{font-size:11px}}
.loyalty-overlay{--loyalty-brand:#0cbc21;--loyalty-brand-dark:#087a18;--loyalty-brand-soft:#e8fbe9;--loyalty-action:var(--loyalty-brand-dark);--loyalty-action-text:#fff;--loyalty-action-border:var(--loyalty-action);--loyalty-action-soft:color-mix(in srgb, var(--loyalty-action) 12%, white);--loyalty-star:#f5b82e;--loyalty-ink:#102532;--loyalty-muted:#708079;--loyalty-line:#dce5e0;z-index:95;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#071d2b99;place-items:end center;padding-top:25px;display:grid;position:fixed;inset:0}.loyalty-modal{box-sizing:border-box;border:1px solid var(--loyalty-action-border);width:min(650px,100%);max-height:94vh;color:var(--loyalty-ink);background:#f7f9f7;border-radius:24px 24px 0 0;padding:25px 28px;overflow:auto;box-shadow:0 -20px 70px #071d2b38}.loyalty-modal>header{justify-content:space-between;gap:18px;display:flex}.loyalty-modal header small{color:var(--loyalty-action);letter-spacing:1px;font-size:9px;font-weight:900}.loyalty-modal h2{letter-spacing:-.8px;margin:5px 0;font-size:28px}.loyalty-modal header button{border:1px solid var(--loyalty-line);width:36px;height:36px;color:var(--loyalty-ink);cursor:pointer;background:#fff;border-radius:10px;flex:none;font-size:21px}.loyalty-modal form{margin-top:18px}.loyalty-modal label{color:var(--loyalty-ink);margin:12px 0;font-size:11px;font-weight:900;display:block}.loyalty-modal input{box-sizing:border-box;width:100%;height:46px;color:var(--loyalty-ink);font:inherit;background:#fff;border:1px solid #bfcfc6;border-radius:11px;outline:0;margin-top:7px;padding:0 14px;font-size:13px;transition:border-color .16s,box-shadow .16s;display:block}.loyalty-modal input:focus{border-color:var(--loyalty-action-border);box-shadow:0 0 0 3px color-mix(in srgb, var(--loyalty-action) 22%, transparent)}.loyalty-modal button:focus-visible{outline:3px solid color-mix(in srgb, var(--loyalty-action) 28%, transparent);outline-offset:2px}.loyalty-modal form>button,.loyalty-done{border:1px solid var(--loyalty-action-border);background:var(--loyalty-action);width:100%;min-height:44px;color:var(--loyalty-action-text);cursor:pointer;border-radius:11px;margin-top:8px;padding:12px 16px;font-size:12px;font-weight:900}.loyalty-modal button:disabled{cursor:not-allowed;opacity:.48}.loyalty-error{color:#9c3048;background:#fff0f3;border:1px solid #ffc9d4;border-radius:10px;padding:10px 12px;font-size:10px}.loyalty-balance{border:1px solid var(--loyalty-action-border);background:var(--loyalty-action);color:var(--loyalty-action-text);text-align:center;border-radius:18px;margin:18px 0;padding:22px}.loyalty-balance>span{color:var(--loyalty-action-text);letter-spacing:1.2px;font-size:9px;font-weight:900}.loyalty-balance strong{margin:9px;font-size:48px;line-height:1;display:block}.loyalty-balance strong i{color:var(--loyalty-action-text);margin-left:5px;font-size:29px;font-style:normal}.loyalty-balance p{color:var(--loyalty-action-text);opacity:.78;font-size:11px}.loyalty-history h3{margin:18px 0 9px;font-size:14px}.loyalty-history>div{border-top:1px solid var(--loyalty-line);grid-template-columns:55px 1fr auto;align-items:center;gap:8px;padding:10px 3px;display:grid}.loyalty-history span{color:var(--loyalty-action);font-size:10px;font-weight:900}.loyalty-history p,.loyalty-history small{margin:0;font-size:9px}.loyalty-history small{color:var(--loyalty-muted)}.loyalty-done{margin-top:18px}.request-redemption{border:1px solid var(--loyalty-action-border);background:var(--loyalty-action);width:100%;color:var(--loyalty-action-text);border-radius:11px;margin-top:9px;padding:12px;font-size:11px;font-weight:900}.redemption-ticket{border:2px dashed var(--loyalty-action-border);background:var(--loyalty-action-soft);text-align:center;border-radius:18px;margin:20px 0;padding:25px}.redemption-ticket>span{color:var(--loyalty-action);letter-spacing:1.2px;font-size:9px;font-weight:900;display:block}.redemption-ticket strong{color:var(--loyalty-ink);letter-spacing:8px;margin:12px 0;font-size:42px;display:block}.redemption-ticket p{font-size:12px;font-weight:800}.redemption-ticket small{max-width:360px;color:var(--loyalty-muted);margin:auto;font-size:9px;line-height:1.5;display:block}@media (min-width:651px){.loyalty-overlay{place-items:center;padding:24px}.loyalty-modal{border-radius:22px;max-height:90vh}}@media (max-width:520px){.loyalty-modal{padding:22px 19px}.loyalty-modal h2{font-size:25px}.loyalty-history>div{grid-template-columns:50px 1fr}.loyalty-history small{grid-column:2}}@media (prefers-reduced-motion:reduce){.loyalty-modal *{transition:none!important;animation:none!important}}
.redemption-confirmed{border:1px solid var(--loyalty-action-border);background:var(--loyalty-action-soft);color:var(--loyalty-ink);text-align:center;border-radius:18px;margin:20px 0;padding:28px 22px}.redemption-confirmed>span{background:var(--loyalty-action);width:52px;height:52px;color:var(--loyalty-action-text);border-radius:14px;place-items:center;margin:0 auto 12px;font-size:25px;font-weight:900;display:grid}.redemption-confirmed h3{margin:6px 0;font-size:21px}.redemption-confirmed p{color:#52645b;max-width:410px;margin:8px auto;font-size:11px;line-height:1.55}.redemption-confirmed strong{background:#fff;border-radius:10px;margin-top:8px;padding:8px 12px;font-size:12px;display:inline-block}.redemption-ticket small:before{color:var(--loyalty-action);content:"●";margin-right:6px;animation:1.5s infinite loyaltyPulse}@keyframes loyaltyPulse{50%{opacity:.25}}
.reward-catalog article,.reward-choice{border:1px solid var(--loyalty-line);background:#fff;border-radius:14px;margin:10px 0;padding:16px}.reward-catalog h3,.reward-choice h3{color:var(--loyalty-ink);font-size:17px}.reward-catalog article>div{justify-content:space-between;gap:12px;display:flex}.reward-catalog article strong{color:var(--loyalty-action);white-space:nowrap}.reward-catalog small,.reward-choice small{color:var(--loyalty-muted);margin:10px 0;font-size:12px;line-height:1.5;display:block}.reward-catalog button,.reward-choice button{border:1px solid var(--loyalty-action-border);background:var(--loyalty-action);width:100%;min-height:42px;color:var(--loyalty-action-text);border-radius:10px;margin-top:7px;padding:11px 12px;font-weight:850}.reward-catalog button:disabled{color:#708079;cursor:not-allowed;background:#e7eee9}.reward-choice button:last-child{border:1px solid var(--loyalty-line);color:var(--loyalty-ink);background:#fff}
