@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#17223a;background:#f5f6f9;font-synthesis:none;--navy:#101b35;--lime:#dcff70;--muted:#647087;--line:#e7eaf0}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:default;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #719d00;outline-offset:4px}h1,h2,h3,.brand{font-family:Manrope,sans-serif}h1{font-size:clamp(1.9rem,3vw,2.65rem);letter-spacing:-1.5px;line-height:1.2;margin:12px 0}h2{font-size:1.25rem;line-height:1.4;margin:0 0 10px;letter-spacing:-.5px}h3{font-size:1rem;margin-top:26px}p{font-size:1rem;line-height:1.65;color:var(--muted);margin:8px 0 20px}small{font-size:.8rem}.icon{width:24px;height:24px;flex-shrink:0;vertical-align:middle}.sidebar{width:236px;position:fixed;inset:0 auto 0 0;background:var(--navy);color:#a9b3c9;padding:40px 25px;display:flex;flex-direction:column}.brand{color:white;font-size:2rem;font-weight:800;letter-spacing:-1.7px;display:flex;align-items:baseline;gap:5px}.brand span{font-size:.95rem;font-weight:500;letter-spacing:-.4px}.brand i{color:var(--lime);font-style:normal;margin-left:5px}.nav-label{font-size:.7rem;letter-spacing:2px;margin:55px 14px 18px}.sidebar nav{display:grid;gap:8px}.sidebar nav a{display:flex;align-items:center;gap:15px;padding:14px 16px;border-radius:12px;font-size:.95rem}.sidebar nav a:hover{background:#202c46;color:white}.sidebar nav a.active{background:var(--lime);color:var(--navy);font-weight:700}.sidebar-bottom{margin-top:auto;padding-top:32px}.club-stamp{display:flex;gap:12px;align-items:center;background:#1b2740;padding:17px 12px;border-radius:12px;line-height:1.5;font-size:.8rem;color:#cad2e0;margin-bottom:25px}.club-stamp .icon{color:var(--lime)}.admin-link,.logout{display:flex;align-items:center;gap:10px;padding:10px;font-size:.875rem}.logout{border:0;background:none;color:inherit}.workspace{margin-left:236px}header{height:88px;border-bottom:1px solid var(--line);padding:0 45px;display:flex;align-items:center;gap:22px;background:#fff}.breadcrumb{margin-right:auto;font-size:.875rem;font-weight:500}.breadcrumb span{padding:0 14px;color:#b1b7c4}.demo-badge{font-size:.68rem;letter-spacing:1px;color:#60703e;background:#f0f6e3;border:1px solid #e4ebd6;padding:7px 10px;border-radius:5px}.avatar{width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#e8eaf8;color:#4c5275;font-weight:700;flex-shrink:0}.large{width:64px;height:64px;font-size:1.5rem}main{max-width:1400px;margin:auto;padding:40px 45px 30px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.eyebrow{font-size:.7rem;letter-spacing:1.7px;font-weight:700}.page-heading p{margin-bottom:0}.lime-text{color:#8dad36}.location{font-size:.85rem;text-align:right;white-space:nowrap}.location .icon{width:18px;margin-right:7px}.location small{display:block;color:var(--muted);margin-top:5px;font-size:.7rem}.dashboard{display:grid;grid-template-columns:1.55fr 1fr;gap:24px}.panel{background:white;border:1px solid var(--line);border-radius:20px;padding:27px}.boarding{position:relative;background:var(--navy);color:white;border-radius:20px;overflow:hidden;padding:28px 30px 0;background-image:radial-gradient(ellipse at 100% 0,#324665 0,transparent 65%)}.card-top{display:flex;justify-content:space-between;gap:10px;font-size:.8rem;letter-spacing:1px}.member{font-size:.6rem;letter-spacing:1px;border:1px solid #73809a;border-radius:30px;padding:6px 10px;align-self:center}.balance-label{font-size:.9rem;color:#c3cbd8;margin-top:35px}.balance{font-family:Manrope,sans-serif;font-size:4.5rem;font-weight:700;line-height:1.2;letter-spacing:-3px;margin-top:7px;color:var(--lime)}.balance span{font-family:'DM Sans',sans-serif;font-size:1rem;color:#d5dbea;letter-spacing:0;margin-left:12px;font-weight:400}.boarding-bottom{display:flex;gap:35px;align-items:center;margin-top:26px;margin-bottom:27px}.boarding-bottom small{display:block;color:#96a5c0;font-size:.6rem;letter-spacing:1.5px;margin-bottom:6px}.boarding-bottom strong{font-size:.85rem;font-weight:500}.flight-symbol{margin-left:auto;color:var(--lime)}.flight-symbol .icon{width:38px;height:38px;transform:rotate(35deg)}.perforation{border-top:1px dashed #5c6b82;margin:0 -30px;position:relative}.perforation:before,.perforation:after{content:'';position:absolute;width:22px;height:22px;background:#f5f6f9;border-radius:50%;top:-11px}.perforation:before{left:-11px}.perforation:after{right:-11px}.card-foot{display:flex;justify-content:space-between;gap:10px;padding:20px 0;font-size:.7rem;color:#b9c4d8}.card-foot span:first-child{color:white}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.section-title h2{margin:0}.section-title>a{font-size:.8rem;color:#606d84}.next-reward{position:relative}.next-reward h2{max-width:240px;margin-top:20px}.next-reward p{font-size:.85rem;margin-bottom:14px}.reward-preview{width:55px;height:55px;border-radius:15px;display:flex;align-items:center;justify-content:center;float:right;margin:0 0 15px 10px}.reward-preview .icon{width:34px;height:34px}.peach{background:#ffe3cc;color:#9b592e}.lime{background:#e9f7cb;color:#536d18}.blue{background:#e5ebff;color:#5064b1}progress{appearance:none;width:100%;height:7px;border:0;border-radius:10px;overflow:hidden;background:#eef0f3}progress::-webkit-progress-bar{background:#eef0f3}progress::-webkit-progress-value{background:#b3da52;border-radius:10px}progress::-moz-progress-bar{background:#b3da52}.progress-label{display:flex;justify-content:space-between;margin:8px 0 22px;font-size:.7rem;color:var(--muted)}.text-link{font-size:.85rem;font-weight:700;display:inline-block}.scan-card{display:flex;align-items:center;gap:21px;background:var(--lime);padding:28px;border-radius:20px;grid-column:1/-1}.scan-icon{display:flex;align-items:center;justify-content:center;background:var(--navy);color:var(--lime);width:73px;height:73px;border-radius:16px;flex-shrink:0}.scan-icon .icon{width:42px;height:42px}.scan-card h2{font-size:1.55rem;margin:6px 0}.scan-card p{color:#4f612c;margin:0;font-size:.9rem}.scan-card .eyebrow{font-size:.65rem}.action-pill{margin-left:auto;background:white;border-radius:10px;padding:15px 25px;font-size:.9rem;font-weight:700;white-space:nowrap}.zap-card{grid-column:2;grid-row:3;display:flex;gap:15px;align-items:flex-start}.zap-card h2{font-size:1.05rem}.zap-card p{font-size:.875rem}.small-icon{width:42px;height:42px;display:inline-flex;justify-content:center;align-items:center;border-radius:12px;flex-shrink:0}.activity{grid-column:1;grid-row:3/5}.transaction{display:flex;align-items:center;gap:13px;padding:18px 0;border-bottom:1px solid var(--line);min-width:0}.transaction:last-child{border-bottom:0}.transaction>div{min-width:0;flex:1}.transaction strong{display:block;font-size:.875rem;font-weight:500;overflow-wrap:anywhere}.transaction small{display:block;color:var(--muted);font-size:.72rem;margin-top:5px;overflow-wrap:anywhere}.transaction>b{font-size:.9rem;white-space:nowrap;margin-left:auto}.transaction>b small{display:inline;font-weight:400}.positive{color:#5a7721}.club-note{padding:7px 7px 0}.club-note .eyebrow{font-size:.58rem;color:var(--muted)}.club-note h2{font-size:1.35rem;margin-top:14px}.brand-pills{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.brand-pills span{border:1px solid #d8dee8;border-radius:20px;padding:8px 14px;font-size:.7rem;font-weight:700;letter-spacing:1px}footer{padding:25px 45px 35px;font-size:.65rem;letter-spacing:1px;color:#778094;display:flex;justify-content:space-between;gap:15px}.mobile-nav{display:none}.primary,.secondary{border:0;border-radius:10px;padding:13px 20px;min-height:46px;font-weight:700;font-size:.9rem;display:inline-flex;gap:8px;align-items:center;justify-content:center}.primary{background:var(--navy);color:white}.secondary{background:#f2f4f8;color:var(--navy);border:1px solid #dce1e9}.primary:hover{background:#2b3d5b}.secondary:hover{background:#e7ecf3}.wide{width:100%}label{display:grid;gap:9px;font-size:.875rem;font-weight:500;margin:0 0 22px}input,select{width:100%;min-height:48px;padding:12px 14px;border:1px solid #d9dfe8;border-radius:9px;background:white;color:var(--navy)}input:disabled{background:#f2f4f8}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px}.spaced{margin-top:24px}.scanner{height:300px;background:#131e35;border-radius:16px;margin-bottom:22px;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#bbc5d8;overflow:hidden}.scanner video{position:absolute;width:100%;height:100%;object-fit:cover}.scan-frame{border:2px solid var(--lime);border-radius:18px;padding:35px;z-index:1}.scan-frame .icon{width:80px;height:80px;color:var(--lime)}.scanner.live .scan-frame .icon{visibility:hidden}.scanner>span{z-index:1;font-size:.8rem;margin-top:20px;background:#101b35a6;padding:4px 10px}.muted{font-size:.8rem;color:var(--muted)}.explain{padding:40px}.explain h2{font-size:2rem;margin-top:20px}.explain ol{padding-left:20px;color:var(--muted);line-height:2.4;font-size:.95rem}.info{background:#f0f5e7;color:#52633d;border-radius:10px;font-size:.85rem;line-height:1.6;padding:16px;margin:20px 0}.upload-zone{border:1px dashed #aab5c8;border-radius:12px;background:#f8f9fc;padding:25px;justify-items:center;text-align:center}.upload-zone .icon{height:35px;width:35px}.upload-zone span{font-size:.8rem;color:var(--muted)}.upload-zone input{font-size:.8rem;max-width:100%}.status{font-size:.72rem;padding:7px 10px;border-radius:20px;white-space:nowrap}.pending{color:#856316;background:#fff4d6}.approved{color:#506920;background:#eff6df}.rejected{color:#a33b40;background:#ffe9eb}.empty{padding:28px 0;font-size:.9rem}.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.reward{padding:20px;display:flex;flex-direction:column}.reward-art{height:180px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:25px}.reward-art .icon{width:80px;height:80px;stroke-width:1.1}.reward .eyebrow{font-size:.62rem;color:var(--muted)}.reward h2{margin-top:10px;flex:1}.price{font-size:1.65rem;font-weight:700;color:var(--navy)}.price small{font-size:.85rem;font-weight:400;color:var(--muted)}dialog{border:0;border-radius:20px;padding:32px;width:min(450px,90vw);box-shadow:0 30px 100px #101b3544}dialog::backdrop{background:#101b3599;backdrop-filter:blur(4px)}.close{float:right;border:0;background:#f1f3f6;border-radius:50%;height:32px;width:32px;font-size:1.4rem}.leaderboard{max-width:850px}.ranking-banner{background:var(--navy);color:white;display:flex;gap:22px;align-items:center;padding:28px;border-radius:14px;margin-bottom:15px}.ranking-banner>.icon{width:45px;height:45px;color:var(--lime)}.ranking-banner h2{margin:5px 0 0}.ranking-banner .member{margin-left:auto}.rank-row{display:flex;align-items:center;gap:22px;padding:20px 15px;border-bottom:1px solid var(--line);border-radius:8px}.rank-row strong{font-size:.95rem}.rank-row b{margin-left:auto;font-size:.95rem}.rank-row small{color:var(--muted);font-weight:400}.rank-number{font-family:Manrope,sans-serif;color:#8b93a4;font-weight:700}.you{background:#f0f7e0}.profile-head{display:flex;align-items:center;gap:18px;margin-bottom:30px}.profile-head h2{margin-bottom:6px}hr{border:0;border-top:1px solid var(--line);margin:30px 0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.stats span{font-size:.85rem;color:var(--muted)}.stats b{display:block;font-size:2rem;margin-top:12px}.admin-receipt{display:flex;gap:20px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:20px 0}.admin-receipt strong{font-size:.9rem}.admin-receipt p{font-size:.8rem;margin:8px 0;overflow-wrap:anywhere}.button-group{display:flex;gap:6px;flex-wrap:wrap}.button-group button{padding:10px;font-size:.8rem}.qr-list{max-height:400px;overflow:auto;margin-top:20px}code{font-size:.8rem;overflow-wrap:anywhere}.auth-layout{display:grid;grid-template-columns:1fr 1fr;min-height:100dvh;background:white}.auth-story{background:var(--navy);color:white;padding:55px;display:flex;flex-direction:column;justify-content:space-between;min-height:680px;background-image:radial-gradient(ellipse at 0 100%,#344659,transparent 70%)}.auth-story h1{font-size:clamp(2.5rem,4vw,4.5rem);letter-spacing:-2.5px;margin:20px 0}.auth-story p{color:#b7c3d8;max-width:400px}.auth-story .eyebrow{color:var(--lime)}.auth-story .brand-pills span{border-color:#46536b;font-size:.8rem;letter-spacing:0}.auth-story small{color:#9ba9c0}.auth-story .brand-pills .icon{width:19px;margin-right:5px}.auth-form{border:0;align-self:center;justify-self:center;max-width:470px;width:100%;padding:40px}.auth-form h2{font-size:1.9rem;margin-top:15px}.auth-form form{margin-top:30px}.auth-switch{text-align:center;font-size:.85rem;margin-top:22px}.auth-switch a{font-weight:700;color:var(--navy)}.divider{text-align:center;font-size:.6rem;color:#8a93a4;letter-spacing:1.5px;margin:24px 0}.demo-note{display:block;text-align:center;line-height:1.7;color:var(--muted);margin-top:20px;font-size:.73rem}#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);background:var(--navy);color:white;box-shadow:0 8px 35px #0003;padding:16px 25px;border:1px solid #718056;border-radius:12px;max-width:90vw;width:max-content;font-size:.9rem;opacity:0;pointer-events:none;transition:.2s;z-index:50}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:1450px){main{padding-top:50px}.boarding{padding-top:35px}.balance-label{margin-top:40px}.boarding-bottom{margin-top:34px}.next-reward{padding:32px}.scan-card{padding:32px}}
@media(max-width:1150px){.sidebar{width:200px;padding:35px 18px}.workspace{margin-left:200px}main{padding:30px 25px}header{padding:0 25px}.location{display:none}.boarding{padding-left:22px;padding-right:22px}.boarding-bottom{gap:18px}.card-foot span:last-child{font-size:.6rem}.reward-grid{gap:14px}.reward{padding:16px}.reward h2{font-size:1.05rem}.admin-receipt{align-items:flex-start;flex-direction:column}}
@media(max-width:850px){.sidebar{width:82px;padding:30px 12px}.sidebar .brand{font-size:0;justify-content:center}.sidebar .brand span,.nav-label,.sidebar nav a span,.sidebar-bottom{display:none}.sidebar .brand i{font-size:2rem}.sidebar nav{margin-top:40px}.sidebar nav a{padding:16px;justify-content:center}.workspace{margin-left:82px}.dashboard{grid-template-columns:1fr}.next-reward{grid-row:2}.scan-card{grid-row:3}.zap-card,.activity{grid-column:auto;grid-row:auto}.club-note{display:none}.two-col{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.reward-grid{grid-template-columns:1fr}.reward{display:grid;grid-template-columns:140px 1fr;column-gap:22px}.reward-art{grid-row:1/5;height:100%;min-height:180px;margin:0}.reward .price{margin:8px 0}.reward-art .icon{width:65px}.auth-story{padding:35px}.auth-form{padding:28px}.auth-story h1{font-size:2.5rem}}
@media(max-width:600px){.sidebar{display:none}.workspace{margin-left:0}header{height:68px;padding:0 20px;gap:12px}.breadcrumb{font-size:.8rem}.breadcrumb span{padding:0 6px}.demo-badge{font-size:.55rem;padding:6px;letter-spacing:.3px}.avatar{height:32px;width:32px}main{padding:28px 18px 25px}h1{font-size:1.9rem;letter-spacing:-1px}.eyebrow{font-size:.63rem;letter-spacing:1.3px}.page-heading{margin-bottom:22px}.page-heading p{font-size:.9rem}.dashboard{gap:18px}.panel{padding:22px;border-radius:17px}.boarding{padding:24px 24px 0;border-radius:17px}.card-top{font-size:.7rem}.balance{font-size:4.1rem}.balance-label{margin-top:28px}.boarding-bottom{margin-top:25px;gap:18px}.boarding-bottom strong{font-size:.75rem}.flight-symbol{display:none}.card-foot{padding:17px 0}.card-foot span:last-child{font-size:.58rem}.member{font-size:.5rem}.next-reward h2{max-width:none}.scan-card{padding:23px;gap:16px;flex-wrap:wrap}.scan-icon{width:55px;height:55px;border-radius:13px}.scan-icon .icon{width:33px;height:33px}.scan-card>div{flex:1;min-width:180px}.scan-card h2{font-size:1.2rem}.scan-card p{font-size:.8rem}.scan-card .action-pill{width:100%;text-align:center;margin:0;padding:12px}.section-title h2{font-size:1.1rem}.transaction{gap:10px}.transaction strong{font-size:.82rem}.transaction>b{font-size:.85rem}.transaction .small-icon{height:35px;width:35px}.transaction .status{font-size:.65rem}.mobile-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:#fffffff5;border-top:1px solid var(--line);padding:10px 5px max(10px,env(safe-area-inset-bottom));z-index:20;backdrop-filter:blur(12px)}.mobile-nav a{display:flex;align-items:center;flex-direction:column;gap:5px;font-size:.62rem;color:#788397;padding:0 8px}.mobile-nav .icon{width:22px;height:22px}.mobile-nav a.active{color:#344c0a;font-weight:700}.mobile-nav a.active .icon{background:var(--lime);outline:6px solid var(--lime);border-radius:3px}.workspace{padding-bottom:70px}footer{padding:10px 20px 20px;font-size:.55rem}footer span{max-width:150px;text-align:right;font-size:.6rem;letter-spacing:0}.explain{padding:28px}.explain h2{font-size:1.6rem}.scanner{height:260px}.stats{gap:12px}.stats .panel{padding:18px}.stats span{font-size:.75rem}.stats b{font-size:1.65rem}.reward{grid-template-columns:90px 1fr;gap:8px 17px;padding:17px}.reward-art{min-height:170px}.reward-art .icon{width:48px}.reward .eyebrow{font-size:.55rem}.reward h2{font-size:1.05rem;margin:4px 0}.reward button{font-size:.75rem;padding:10px}.reward .price{font-size:1.4rem}.ranking-banner{padding:20px;gap:14px}.ranking-banner .member{display:none}.rank-row{gap:12px;padding:18px 4px}.rank-row b{font-size:.85rem}.rank-row strong{font-size:.9rem}.auth-layout{display:block}.auth-story{min-height:auto;padding:28px}.auth-story>div{margin:35px 0 5px}.auth-story h1{font-size:2.6rem;margin:14px 0}.auth-story p{font-size:.9rem}.auth-story>small,.auth-story .brand-pills{display:none}.auth-form{padding:35px 26px}.auth-form h2{font-size:1.6rem}.auth-form .eyebrow{font-size:.65rem}#toast{bottom:90px;max-width:calc(100vw - 28px);font-size:.85rem}.admin-receipt .button-group{width:100%}.transaction code{font-size:.7rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
