@charset "UTF-8";
:root{--red:#bd101f;--deep:#8c0915;--gold:#d4a553;--cream:#fcf6eb;--ink:#30251f;--muted:#8d8278;--line:#eee4d6;--green:#30795c;--shadow:0 6px 22px #6d3d1210}
*{box-sizing:border-box}html{background:#eee8df;scroll-behavior:smooth}body{margin:0;color:var(--ink);font:15px/1.55 Tahoma,"Leelawadee UI",system-ui,sans-serif;-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:0}button:disabled{cursor:default;opacity:.45}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #d7ac50;outline-offset:3px}button:active{transform:translateY(1px)}svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}h1,h2,h3,p{margin:0}h1{font-size:27px;line-height:1.45;letter-spacing:-.7px}h2{font-size:18px}h3{font-size:16px}.app-shell{max-width:480px;margin:auto;background:#fffdf8;min-height:100dvh;position:relative;box-shadow:0 0 50px #5b352111}.topbar{height:83px;padding:14px 21px;display:flex;align-items:center;justify-content:space-between;background:var(--red);color:white}.brand{display:flex;gap:10px;align-items:center;text-align:left;background:none;color:inherit;padding:0}.brand img{width:44px;height:44px;object-fit:contain}.brand>span{font-size:20px;font-weight:bold;line-height:1.35}.brand small{display:block;font:9px/1.8 system-ui,sans-serif;letter-spacing:2px}.icon-button{height:44px;width:44px;border:1px solid #ffffff42;border-radius:15px;background:#ffffff0c;color:inherit;display:grid;place-items:center}.icon-button svg{width:20px}main{padding-bottom:105px;min-height:calc(100dvh - 83px)}.bottom-nav{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;display:flex;border-top:1px solid var(--line);padding:9px 8px max(10px,env(safe-area-inset-bottom));background:#fffefbf5;backdrop-filter:blur(14px)}.bottom-nav button{position:relative;flex:1;min-height:56px;background:none;color:#9b9389;font-size:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.bottom-nav button.active{color:var(--red);font-weight:bold}.bottom-nav button.active:before{content:"";width:27px;height:3px;border-radius:3px;background:var(--red);position:absolute;top:-10px}.nav-icon{position:relative}.nav-icon i{width:7px;height:7px;background:var(--red);border:2px solid #fff;border-radius:50%;position:absolute;right:-4px;top:-1px}.hero{height:229px;position:relative;overflow:hidden;background:var(--red);color:white;padding:22px 22px 40px}.hero:before{content:"";position:absolute;inset:0;opacity:.13;background-image:repeating-radial-gradient(ellipse at 50% 100%,transparent 0 8px,#ffcd7a 9px 10px,transparent 11px 18px);background-size:64px 34px;pointer-events:none}.hero-copy{position:relative;z-index:1;width:63%}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:bold;color:#f6d49e;text-transform:uppercase;margin-bottom:7px}.hero h1 span{color:#ffe2a3}.hero p{font-size:12px;color:#ffe7da;margin-top:10px}.hero-portrait{width:155px;height:184px;background:var(--cream);position:absolute;right:-5px;top:14px;border-radius:100px 100px 0 100px;transform:rotate(-6deg);border:4px solid #e6bc72;box-shadow:0 0 0 6px #ffffff12}.hero-portrait img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;transform:rotate(6deg) scale(1.05)}.sparkle{position:absolute;right:147px;top:22px;color:#ffdf96;font-size:27px}.membership-wrap{padding:0 20px;position:relative;margin-top:-40px;z-index:2}.membership-card{background:linear-gradient(125deg,#fff 40%,#faf1e1);border:1px solid #e1bf81;border-radius:22px;overflow:hidden;box-shadow:0 8px 24px #8d56151a}.card-top{padding:18px 18px 12px;display:flex;justify-content:space-between;align-items:center}.member-tag{display:inline-flex;align-items:center;gap:5px;color:#9c6828;font-size:10px;letter-spacing:.5px;font-weight:bold}.member-tag svg{width:17px;height:17px}.card-top .tiny{font-size:10px;color:var(--muted)}.card-body{display:flex;gap:16px;padding:0 18px 18px;align-items:center}.qr-button{width:104px;flex:0 0 104px;min-height:112px;padding:8px 8px 4px;background:white;border:1px solid #f1e9de;border-radius:12px;color:var(--muted);font-size:8px}.qr-button img{width:84px;height:84px;display:block;margin:0 auto 4px}.member-info{min-width:0}.member-info h2{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-number{font:10px/1.8 system-ui,sans-serif;color:var(--muted);letter-spacing:.4px;margin-top:2px}.points-line{font-size:30px;font-weight:bold;line-height:1.4;color:var(--red);margin-top:3px;font-variant-numeric:tabular-nums}.points-line small{font-size:12px;margin-left:5px;font-weight:normal}.card-footer{display:flex;justify-content:space-between;padding:11px 18px;background:#f3e8d54d;border-top:1px solid #eadbc3;font-size:11px}.card-footer b{color:#805e2e}.card-footer button{padding:0;background:none;color:#8d6a3b;font-size:11px}.card-footer svg{width:14px;height:14px}.section{padding:25px 20px 0}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.section-title a,.text-link{background:none;color:var(--red);font-size:11px;padding:8px 0}.section-title svg{height:14px;width:14px}.progress-card{border-radius:16px;padding:16px;background:#fff;border:1px solid var(--line)}.progress-head{display:flex;justify-content:space-between;font-size:11px}.progress-head strong{color:#8c682d}.progress-track{height:6px;background:#f0e7d9;border-radius:8px;margin:11px 0 8px;overflow:hidden}.progress-fill{height:100%;border-radius:8px;background:linear-gradient(90deg,#bd101f,#e4b767);width:31%}.progress-card p{font-size:10px;color:var(--muted)}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.quick-action{background:none;padding:0;text-align:center;font-size:11px;color:#685d52}.quick-action .circle-icon{width:49px;height:49px;margin:0 auto 8px;border-radius:17px;display:grid;place-items:center;background:#f7ecd9;color:#a4742d}.quick-action:nth-child(2) .circle-icon{color:var(--red);background:#fae8e6}.quick-action:nth-child(3) .circle-icon{color:var(--green);background:#edf2e9}.mini-reward{display:flex;align-items:center;gap:14px;background:var(--cream);border:1px solid #eddfc4;border-radius:18px;overflow:hidden;padding:12px}.mini-reward img{height:106px;width:83px;object-fit:contain;mix-blend-mode:multiply}.mini-reward h3{font-size:15px;margin:4px 0}.pill{display:inline-block;color:#9b692c;background:#f5e4c3;border-radius:20px;font-size:9px;padding:3px 9px;font-weight:bold}.mini-reward p{font-size:10px;color:var(--muted);margin-bottom:9px}.button{min-height:48px;border-radius:14px;padding:12px 18px;font-weight:bold;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:14px;background:var(--red);color:white;box-shadow:0 4px 10px #bd101f18}.button.small{min-height:34px;padding:7px 13px;font-size:11px;border-radius:10px}.button.full{width:100%}.button.secondary{color:var(--red);background:#fff;border:1px solid #e6c4b6;box-shadow:none}.button.light{color:#805e2e;background:#f5ebd9;box-shadow:none}.button svg{height:18px;width:18px}.demo-note{display:flex;align-items:center;gap:6px;justify-content:center;color:#a1968a;font-size:10px;margin:24px 20px 0;line-height:1.7;text-align:center}.demo-note svg{width:13px;height:13px}.page-intro{padding:23px 21px 17px}.page-intro .eyebrow{color:#b38c4e}.page-intro h1{font-size:25px}.page-intro p{font-size:12px;color:var(--muted);margin-top:6px}.balance-strip{margin:0 20px 18px;padding:14px 16px;border-radius:16px;background:var(--cream);border:1px solid #ecdfc7;display:flex;justify-content:space-between;align-items:center}.balance-strip .label{font-size:11px;color:#8c785f}.balance-strip strong{color:var(--red);font-size:24px}.balance-strip strong small{font-size:11px;font-weight:normal}.balance-strip svg{width:26px;height:26px;color:#ba913e}.filters{display:flex;gap:8px;overflow:auto;padding:0 20px 17px;scrollbar-width:none}.chip{border:1px solid #e9dfd1;border-radius:22px;padding:9px 15px;background:white;color:#7a6d61;font-size:11px;white-space:nowrap;min-height:38px}.chip.selected{background:var(--red);border-color:var(--red);color:white}.reward-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;padding:0 20px}.reward-card{background:white;overflow:hidden;border:1px solid #eee3d2;border-radius:18px;box-shadow:var(--shadow)}.reward-art{height:157px;background:var(--cream);position:relative;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.reward-art:before{content:"福";font-size:85px;color:#ead9b7;position:absolute;right:-6px;top:6px;font-family:serif}.reward-art img{height:143px;width:120px;object-fit:contain;position:relative;mix-blend-mode:multiply;z-index:1}.reward-art .pill{position:absolute;left:9px;top:10px;z-index:2;background:#fffdf4eb;border:1px solid #e3c48e}.reward-body{padding:12px}.reward-body h3{font-size:13px;line-height:1.6;min-height:42px}.reward-body p{font-size:10px;color:var(--muted);margin:5px 0 8px}.reward-points{color:var(--red);font-size:21px;font-weight:bold;margin-bottom:9px}.reward-points small{font-size:10px;font-weight:normal}.reward-body .button{width:100%;padding:9px 3px;min-height:38px;font-size:11px;border-radius:10px}.notice{font-size:10px;color:#958879;margin:16px 20px 0;padding:11px 13px;background:#f7f2e9;border-radius:10px;line-height:1.8}.tabs{display:flex;margin:0 20px 22px;border-bottom:1px solid var(--line)}.tabs button{flex:1;background:none;padding:13px 5px;color:#999084;font-size:12px;border-bottom:3px solid transparent}.tabs button.selected{color:var(--red);font-weight:bold;border-bottom-color:var(--red)}.empty-state{text-align:center;padding:16px 27px 0}.empty-state img{width:143px;height:178px;object-fit:contain;mix-blend-mode:multiply;margin-bottom:15px}.empty-state h2{font-size:17px}.empty-state p{font-size:12px;color:var(--muted);margin:9px 0 23px}.coupon-list{padding:0 20px;display:grid;gap:14px}.coupon-card{background:white;position:relative;border:1px solid #e7d5b6;border-radius:17px;overflow:hidden}.coupon-head{display:flex;padding:15px;background:var(--cream);align-items:center;gap:14px}.coupon-head img{height:76px;width:62px;object-fit:contain;mix-blend-mode:multiply}.coupon-head h3{font-size:15px;margin:5px 0}.coupon-head p{font-size:10px;color:var(--muted)}.coupon-foot{display:flex;align-items:center;justify-content:space-between;border-top:1px dashed #d8bf91;padding:12px 15px;gap:8px}.coupon-foot code{font-size:10px;color:#8b7b65}.coupon-foot .used{font-size:11px;color:var(--muted)}.profile-card{margin:0 20px;padding:20px;background:var(--cream);border:1px solid #e8d5b3;border-radius:20px;display:flex;align-items:center;gap:15px}.avatar{width:65px;height:70px;object-fit:contain;mix-blend-mode:multiply}.profile-card h2{font-size:18px}.profile-card p{font-size:10px;color:var(--muted);margin-top:5px}.menu-list{margin:20px;background:#fff;border:1px solid var(--line);border-radius:17px;overflow:hidden}.menu-row{width:100%;display:flex;align-items:center;gap:12px;background:none;padding:16px;text-align:left;min-height:58px;border-bottom:1px solid #f2ece4;font-size:12px;color:var(--ink)}.menu-row:last-child{border:0}.menu-row>svg:first-child{color:#ad8546;width:21px}.menu-row>svg:last-child{margin-left:auto;color:#ac9e8d;width:15px}.menu-row.danger{color:var(--red)}.page-back{display:flex;align-items:center;gap:6px;padding:17px 20px 0;background:none;color:#8c7963;font-size:11px;min-height:44px}.page-back svg{width:16px}.form-card{margin:0 20px;border:1px solid var(--line);border-radius:18px;padding:19px;background:white}.field{display:block;margin-bottom:18px}.field>span{display:block;font-size:12px;font-weight:bold;margin-bottom:7px}.field input{min-height:49px;width:100%;border:1px solid #e1d6c6;border-radius:11px;background:#fffefa;padding:11px 13px;color:var(--ink);font-size:16px;outline:none}.field input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #d4a55319}.field small{display:block;font-size:10px;color:var(--muted);margin-top:6px}.staff-customer{display:flex;align-items:center;gap:10px;background:#f8f4ec;padding:12px;border-radius:12px;margin-bottom:18px;font-size:12px}.staff-customer svg{color:var(--green)}.staff-customer small{display:block;color:var(--muted);font-size:10px}.inline-input{display:flex;gap:8px}.inline-input input{min-width:0}.inline-input button{flex-shrink:0;font-size:10px;padding:0 12px;min-height:49px}.summary-box{display:flex;justify-content:space-between;align-items:center;background:var(--cream);border-radius:12px;padding:13px;margin-bottom:17px;font-size:12px}.summary-box strong{color:var(--red);font-size:22px}.summary-box strong small{font-size:11px;font-weight:normal}.history-list{padding:0 20px}.history-row{display:flex;gap:12px;align-items:center;padding:17px 0;border-bottom:1px solid var(--line)}.history-symbol{width:39px;height:39px;display:grid;place-items:center;background:#f6ebd8;color:#ac803b;border-radius:12px;flex-shrink:0}.history-row .details{flex:1;min-width:0}.history-row h3{font-size:12px}.history-row p{color:var(--muted);font-size:10px;margin-top:3px}.history-row strong{font-size:16px;color:var(--green);white-space:nowrap}.history-row strong.minus{color:var(--red)}.overlay{position:fixed;z-index:30;inset:0;background:#26190fb0;display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(3px)}.sheet{max-width:480px;width:100%;max-height:92dvh;overflow:auto;background:#fffdf8;border-radius:26px 26px 0 0;padding:10px 24px max(27px,env(safe-area-inset-bottom));position:relative;animation:slide-in .22s ease-out}.sheet-handle{height:4px;width:38px;background:#e5dac9;border-radius:5px;margin:0 auto 17px}.sheet-close{position:absolute;right:13px;top:18px;min-width:44px;min-height:44px;background:none;color:#948577}.sheet-title{padding:8px 25px 0 0;font-size:21px}.sheet-text{font-size:12px;color:var(--muted);margin-top:9px;line-height:1.9}.sheet-art{width:110px;height:128px;object-fit:contain;mix-blend-mode:multiply;display:block;margin:8px auto 12px}.sheet .button{margin-top:16px}.redeem-cost{display:flex;justify-content:space-between;padding:15px 0;margin-top:14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px}.redeem-cost strong{color:var(--red)}.large-qr{display:block;width:210px;height:210px;margin:22px auto 10px;padding:12px;background:white;border:1px solid var(--line);border-radius:15px}.center{text-align:center}.code-label{font:14px/2 system-ui,sans-serif;letter-spacing:1px}.rich-menu{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:20px 0 4px}.rich-tile{position:relative;min-height:137px;border-radius:14px;background:var(--cream);border:1px solid #dcba79;overflow:hidden;padding:8px 5px;color:var(--deep);display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.rich-tile img{height:93px;width:80px;object-fit:contain;mix-blend-mode:multiply}.rich-tile b{font-size:10px;position:relative;z-index:1;margin-top:4px}.rich-tile.member{grid-column:span 2;flex-direction:row;gap:5px;align-items:center;justify-content:center}.rich-tile.member img{width:87px;height:124px}.rich-tile.member b{font-size:19px;text-align:left;line-height:1.7}.rich-tile.member small{display:block;font-size:9px;font-weight:normal}.rich-tile.delivery{background:#fae8dc}.prototype-label{display:inline-flex;gap:5px;align-items:center;font-size:9px;letter-spacing:.5px;color:#987e58;border:1px solid #e9d7b8;background:#fdf6e9;border-radius:20px;padding:4px 10px}.profile-footer{text-align:center;font:9px/2 system-ui,sans-serif;letter-spacing:1px;color:#b4a696;margin-top:25px}.error{font-size:11px;color:var(--red);margin:0 0 14px;line-height:1.8}.success-symbol{width:56px;height:56px;border-radius:50%;background:#e8f2e9;color:var(--green);display:grid;place-items:center;margin:15px auto}.success-symbol svg{width:29px;height:29px}#toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%,15px);max-width:calc(100% - 36px);width:max-content;background:#342a22f2;border-radius:14px;color:white;padding:12px 20px;font-size:12px;z-index:50;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;box-shadow:0 5px 20px #0002}#toast.visible{opacity:1;transform:translate(-50%,0)}body.modal-open{overflow:hidden}@keyframes slide-in{from{transform:translateY(30px);opacity:.4}to{transform:translateY(0);opacity:1}}@media(min-width:600px){.app-shell{margin-top:22px;min-height:calc(100dvh - 22px);border-radius:26px 26px 0 0;overflow:clip}.overlay{align-items:center}.sheet{border-radius:24px;max-width:432px;max-height:85dvh;padding-bottom:26px}.topbar{padding-top:17px}}@media(max-width:359px){.hero-portrait{right:-19px;width:140px}.hero h1{font-size:24px}.membership-wrap{padding:0 13px}.card-body{gap:11px;padding-left:13px;padding-right:13px}.member-info h2{font-size:14px}.section,.page-intro{padding-left:15px;padding-right:15px}.reward-grid{padding:0 13px;gap:10px}.reward-art{height:142px}.reward-art img{height:128px;width:105px}.reward-body{padding:10px}.reward-body h3{font-size:12px}.points-line{font-size:27px}.rich-tile.member b{font-size:16px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.hero-portrait{overflow:hidden}.hero-portrait img{transform:rotate(6deg) scale(.97)}.button.small,.reward-body .button{min-height:44px}.text-link,.card-footer button{min-height:32px}.prototype-label{line-height:1.7}
.rich-tile:not(.member){background:linear-gradient(145deg,#d61b29,#a80717);color:#fff6df}.rich-tile:not(.member) img{mix-blend-mode:normal;background:var(--cream);border-radius:50%;padding:4px;border:1px solid #e3bd72}.rich-tile:not(.member) b{font-size:11px;margin:8px 0 2px}
