@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Prompt:wght@300;400;500;600;700&display=swap";
@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/bfd813093b8ca1bb-s.p.88bd3266.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/acc5f86302586f33-s.6a9181d3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:300;font-stretch:100%;font-display:swap;src:url(../media/f304c3cf3765fb5f-s.p.607a00cf.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/bfd813093b8ca1bb-s.p.88bd3266.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/acc5f86302586f33-s.6a9181d3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/f304c3cf3765fb5f-s.p.607a00cf.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/bfd813093b8ca1bb-s.p.88bd3266.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/acc5f86302586f33-s.6a9181d3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/f304c3cf3765fb5f-s.p.607a00cf.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/bfd813093b8ca1bb-s.p.88bd3266.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/acc5f86302586f33-s.6a9181d3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/f304c3cf3765fb5f-s.p.607a00cf.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/bfd813093b8ca1bb-s.p.88bd3266.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/acc5f86302586f33-s.6a9181d3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/f304c3cf3765fb5f-s.p.607a00cf.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(../media/bfd813093b8ca1bb-s.p.88bd3266.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(../media/acc5f86302586f33-s.6a9181d3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(../media/f304c3cf3765fb5f-s.p.607a00cf.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Thai Fallback;src:local(Arial);ascent-override:99.79%;descent-override:42.32%;line-gap-override:0.0%;size-adjust:106.33%}.noto_sans_thai_d710703a-module__JrbtNG__className{font-family:Noto Sans Thai,Noto Sans Thai Fallback;font-style:normal}.noto_sans_thai_d710703a-module__JrbtNG__variable{--font-thai:"Noto Sans Thai","Noto Sans Thai Fallback"}
@theme{--font-inter: "Inter",ui-sans-serif,system-ui,sans-serif; --font-prompt: "Prompt",sans-serif;}:root{--primary:#22c55e;--primary-light:#4ade80;--primary-dark:#16a34a;--primary-glow:#22c55e4d;--gold:#f59e0b;--gold-light:#fbbf24;--gold-dark:#d97706;--bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-card:#1a1f35;--bg-card-hover:#1f2541;--bg-elevated:#252b45;--bg-input:#1e2438;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--text-accent:#4ade80;--border-color:#94a3b81f;--border-hover:#94a3b840;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;--info:#3b82f6;--tier-bronze:#cd7f32;--tier-silver:#e0e0e0;--tier-gold:#fbbf24;--tier-platinum:#f8fafc;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080;--shadow-glow:0 0 20px var(--primary-glow);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.35s ease;--font-thai:"Prompt",sans-serif;--font-en:"Inter",sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-thai);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.6}a{color:var(--primary-light);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--primary)}.container{max-width:480px;margin:0 auto;padding:0 16px}.container-wide{max-width:1200px;margin:0 auto;padding:0 24px}.page{min-height:100vh;padding-bottom:80px}.page-header{text-align:center;padding:20px 0 16px}.page-title{color:var(--text-primary);margin-bottom:4px;font-size:1.5rem;font-weight:700}.page-subtitle{color:var(--text-secondary);font-size:.875rem}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-normal);padding:20px}.card:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.card-glass{-webkit-backdrop-filter:blur(20px);border-radius:var(--radius-lg);background:#1a1f35cc;border:1px solid #ffffff14;padding:20px}.btn{font-family:var(--font-thai);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 4px 12px #22c55e4d}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #22c55e66}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--border-hover)}.btn-danger{background:linear-gradient(135deg,var(--danger),#dc2626);color:#fff}.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-dark));color:#1a1a2e;font-weight:700}.btn-block{width:100%}.btn-sm{padding:8px 16px;font-size:.85rem}.btn-lg{padding:16px 32px;font-size:1.05rem}.form-group{margin-bottom:20px}.form-label{color:var(--text-secondary);margin-bottom:6px;font-size:.875rem;font-weight:500;display:block}.form-input{width:100%;font-family:var(--font-thai);color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none;padding:12px 16px;font-size:1rem}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.form-input::placeholder{color:var(--text-muted)}.form-select{width:100%;font-family:var(--font-thai);color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-fast);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;outline:none;padding:12px 16px;font-size:1rem}.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.form-error{color:var(--danger);margin-top:4px;font-size:.8rem}.form-checkbox{cursor:pointer;align-items:flex-start;gap:12px;display:flex}.form-checkbox input[type=checkbox]{width:20px;height:20px;accent-color:var(--primary);cursor:pointer;margin-top:2px}.form-checkbox-label{color:var(--text-secondary);font-size:.875rem;line-height:1.5}.badge{border-radius:var(--radius-full);letter-spacing:.025em;align-items:center;padding:4px 12px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-bronze{color:var(--tier-bronze);background:#cd7f3226;border:1px solid #cd7f324d}.badge-silver{color:var(--tier-silver);background:#c0c0c026;border:1px solid #c0c0c04d}.badge-gold{color:var(--tier-gold);background:#ffd70026;border:1px solid #ffd7004d}.badge-platinum{color:var(--tier-platinum);background:#e5e4e226;border:1px solid #e5e4e24d}.badge-success{color:var(--success);background:#22c55e26}.badge-warning{color:var(--warning);background:#f59e0b26}.badge-danger{color:var(--danger);background:#ef444426}.badge-info{color:var(--info);background:#3b82f626}.member-card{aspect-ratio:1.586;border-radius:var(--radius-xl);background-size:cover;flex-direction:column;justify-content:space-between;width:100%;padding:24px;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px #00000080,inset 0 0 0 1px #ffffff1a}.premium-shimmer:after{content:"";pointer-events:none;background:linear-gradient(90deg,#fff0 0%,#ffffff26 50%,#fff0 100%);width:50%;height:100%;animation:6s infinite premium-shimmer;position:absolute;top:0;left:-100%;transform:skew(-25deg)}@keyframes premium-shimmer{0%{left:-100%}20%{left:200%}to{left:200%}}.member-card-glass{pointer-events:none;z-index:1;background:radial-gradient(circle at 100% 0,#ffffff1a,#0000 50%),radial-gradient(circle at 0 100%,#0006,#0000 50%);position:absolute;inset:0}@keyframes liquid-silver{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.member-card-bronze{background:linear-gradient(135deg,#804a00 0%,#cd7f32 50%,#e69a5a 100%) 0 0/200% 200%;animation:8s infinite liquid-silver}.member-card-silver{background:linear-gradient(135deg,#71717a 0%,#e2e8f0 45%,#fff 50%,#e2e8f0 55%,#71717a 100%) 0 0/200% 200%;animation:8s infinite liquid-silver}.member-card-gold{background:linear-gradient(135deg,#451a03 0%,#b8860b 30%,#fbbf24 50%,#b8860b 70%) 0 0/200% 200%;animation:8s infinite liquid-silver}.member-card-platinum{background:linear-gradient(135deg,#0f172a 0%,#1e293b 50%,#0f172a 100%);box-shadow:0 0 30px #3b82f633,0 10px 30px #00000080}.member-card-bronze:after,.member-card-silver:after,.member-card-gold:after,.member-card-platinum:after{content:"";opacity:.3;pointer-events:none;background-image:radial-gradient(1px 1px at 20px 30px,#fff,#0000),radial-gradient(1px 1px at 40px 70px,#fff,#0000),radial-gradient(1px 1px at 50px 160px,#fff,#0000),radial-gradient(2px 2px at 80px 40px,#fff,#0000),radial-gradient(1px 1px at 90px 10px,#fff,#0000),radial-gradient(1px 1px at 150px 150px,#fff,#0000),radial-gradient(2px 2px at 120px 120px,#fff,#0000);background-repeat:repeat;background-size:200px 200px;animation:100s linear infinite stardust;position:absolute;inset:0}@keyframes stardust{0%{background-position:0 0}to{background-position:400px 400px}}.member-card-holographic{pointer-events:none;z-index:2;mix-blend-mode:color-dodge;opacity:0;background:linear-gradient(105deg,#0000 40%,#ffd7001a 45%,#fff3 50%,#00ffff1a 55%,#0000 60%) 0 0/200% 100%;transition:opacity .5s;position:absolute;inset:0}.member-card:hover .member-card-holographic{opacity:1;animation:2s ease-out forwards holo-sweep}@keyframes holo-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}.member-card-content{z-index:3;flex-direction:column;justify-content:space-between;height:100%;display:flex;position:relative}.member-card-header{justify-content:space-between;align-items:flex-start;display:flex}.member-card-logo{color:#fff;text-shadow:0 2px 4px #00000080;letter-spacing:1px;font-size:1.3rem;font-weight:800}.member-card-tier{text-transform:uppercase;letter-spacing:2px;color:#fffffff2;border-radius:var(--radius-full);-webkit-backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;padding:6px 14px;font-size:.75rem;font-weight:700;box-shadow:0 4px 6px #0000001a}.member-card-chip-container{align-items:center;gap:16px;margin:10px 0 16px;display:flex}.member-card-nfc{opacity:.8;filter:drop-shadow(0 1px 2px #0000004d)}.member-card-id{font-family:var(--font-en);letter-spacing:4px;color:#fff;text-shadow:1px 1px 2px #0009,0 0 10px #fff3;font-size:1.4rem;font-weight:600}.member-card-footer{justify-content:space-between;align-items:flex-end;margin-top:auto;display:flex}.member-card-name{text-transform:uppercase;letter-spacing:1px;color:#fffffff2;text-shadow:0 1px 2px #00000080;font-size:1rem;font-weight:600}.member-card-date{color:#ffffffb3;margin-top:2px;font-size:.75rem}.card-scene{perspective:1000px;width:100%}.card-container{width:100%;transform-style:preserve-3d;transition:transform .8s;position:relative}.card-face{backface-visibility:hidden;width:100%}.card-back{background:var(--bg-card);border-radius:var(--radius-xl);border:1px solid var(--border-color);flex-direction:column;justify-content:center;align-items:center;height:100%;padding:24px;display:flex;position:absolute;top:0;left:0;transform:rotateY(180deg);box-shadow:0 10px 30px #00000080}.card-back-content{text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.qr-wrapper{border-radius:var(--radius-md);background:#fff;margin-bottom:8px;padding:8px}.member-id-display{font-family:var(--font-en);letter-spacing:2px;color:var(--text-primary);font-weight:700}.scan-instruction{color:var(--text-muted);font-size:.8rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.hover-lift{transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.hover-lift:hover{transform:translateY(-8px)}.glass-effect{-webkit-backdrop-filter:blur(8px);background:#ffffffd9;border:1px solid #fff6}.dark .glass-effect{background:#111827cc;border:1px solid #ffffff0d}.card-premium{background:#fff;border:1px solid #f3f4f6;border-radius:2rem;transition:all .3s;box-shadow:0 10px 40px -10px #0000000d}.card-premium:hover{border-color:#22c55e33;transform:translateY(-4px);box-shadow:0 20px 50px -12px #00000014}.gradient-farm{background:linear-gradient(135deg,#16a34a 0%,#22c55e 100%)}.gradient-premium{background:linear-gradient(135deg,#0f172a 0%,#334155 100%)}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.bottom-nav{-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border-color);padding:8px 0;padding-bottom:max(8px,env(safe-area-inset-bottom));z-index:100;background:#111827f2;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{color:var(--text-muted);transition:color var(--transition-fast);-webkit-tap-highlight-color:transparent;flex-direction:column;align-items:center;gap:2px;padding:4px 12px;font-size:.65rem;font-weight:500;text-decoration:none;display:flex}.bottom-nav-item.active{color:var(--primary-light)}.bottom-nav-icon{font-size:1.3rem;line-height:1}.loading-container{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:60vh;display:flex}.loading-spinner{border:3px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--text-secondary);font-size:.9rem}.stat-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-normal);padding:16px}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-label{color:var(--text-muted);margin-bottom:4px;font-size:.75rem}.stat-value{font-family:var(--font-en);color:var(--text-primary);font-size:1.5rem;font-weight:700}.stat-change{margin-top:4px;font-size:.75rem}.coupon-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-normal);overflow:hidden}.coupon-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.coupon-card-body{align-items:center;gap:16px;padding:16px;display:flex}.coupon-discount{background:linear-gradient(135deg,var(--primary),var(--primary-dark));border-radius:var(--radius-md);min-width:72px;height:72px;font-family:var(--font-en);color:#fff;text-align:center;justify-content:center;align-items:center;font-size:1.2rem;font-weight:800;line-height:1.2;display:flex}.coupon-info h3{margin-bottom:4px;font-size:.95rem;font-weight:600}.coupon-info p{color:var(--text-secondary);font-size:.8rem}.coupon-expiry{color:var(--warning);margin-top:4px;font-size:.7rem}.history-item{border-bottom:1px solid var(--border-color);align-items:center;gap:16px;padding:16px 0;display:flex}.history-item:last-child{border-bottom:none}.history-icon{border-radius:var(--radius-md);background:#22c55e1a;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.2rem;display:flex}.history-details{flex:1}.history-details h4{margin-bottom:2px;font-size:.9rem;font-weight:500}.history-details p{color:var(--text-muted);font-size:.75rem}.history-amount{font-family:var(--font-en);font-size:.95rem;font-weight:600}.history-amount.positive{color:var(--success)}.history-amount.negative{color:var(--danger)}.admin-layout{min-height:100vh;display:flex}.admin-sidebar{background:var(--bg-secondary);border-right:1px solid var(--border-color);z-index:50;width:260px;padding:24px 0;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.admin-sidebar-header{border-bottom:1px solid var(--border-color);margin-bottom:16px;padding:0 20px 24px}.admin-sidebar-logo{color:var(--primary-light);font-size:1.2rem;font-weight:800}.admin-sidebar-sub{color:var(--text-muted);margin-top:2px;font-size:.75rem}.admin-nav-item{color:var(--text-secondary);transition:all var(--transition-fast);border-left:3px solid #0000;align-items:center;gap:12px;padding:12px 20px;font-size:.9rem;font-weight:500;text-decoration:none;display:flex}.admin-nav-item:hover{color:var(--text-primary);background:#ffffff08}.admin-nav-item.active{color:var(--primary-light);border-left-color:var(--primary);background:#22c55e0d}.admin-nav-icon{font-size:1.2rem}.admin-content{flex:1;margin-left:260px;padding:24px 32px}.admin-page-title{margin-bottom:24px;font-size:1.5rem;font-weight:700}.data-table-container{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden}.data-table{border-collapse:collapse;width:100%}.data-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--bg-elevated);border-bottom:1px solid var(--border-color);padding:12px 16px;font-size:.8rem;font-weight:600}.data-table td{border-bottom:1px solid var(--border-color);padding:12px 16px;font-size:.875rem}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#ffffff05}.chart-bar-group{flex-direction:column;gap:12px;display:flex}.chart-bar-item{align-items:center;gap:12px;display:flex}.chart-bar-label{min-width:80px;color:var(--text-secondary);text-align:right;font-size:.8rem}.chart-bar-track{background:var(--bg-input);border-radius:var(--radius-sm);flex:1;height:24px;overflow:hidden}.chart-bar-fill{border-radius:var(--radius-sm);color:#fff;align-items:center;height:100%;padding:0 8px;font-size:.7rem;font-weight:600;transition:width .8s;display:flex}.chart-bar-value{min-width:40px;font-family:var(--font-en);text-align:right;font-size:.85rem;font-weight:600}.toast-container{z-index:200;flex-direction:column;gap:8px;display:flex;position:fixed;top:20px;right:20px}.toast{border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:12px 20px;font-size:.875rem;font-weight:500;animation:.3s slideIn}.toast-success{background:var(--success);color:#fff}.toast-error{background:var(--danger);color:#fff}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-fade-in{animation:.5s fadeIn}.animate-slide-up{animation:.5s slideUp}.animate-scale-in{animation:.3s scaleIn}@media (max-width:768px){.admin-sidebar{transition:transform var(--transition-normal);transform:translate(-100%)}.admin-sidebar.open{transform:translate(0)}.admin-content{margin-left:0;padding:16px}.stat-grid{grid-template-columns:repeat(2,1fr);gap:8px}.data-table-container{overflow-x:auto}}@media (max-width:480px){.container{padding:0 12px}.member-card{padding:20px}.member-card-id{letter-spacing:2px;font-size:1.1rem}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.qr-container{border-radius:var(--radius-lg);background:#fff;justify-content:center;max-width:200px;margin:16px auto;padding:20px;display:flex}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:48px 24px;display:flex}.empty-state-icon{opacity:.5;margin-bottom:16px;font-size:3rem}.empty-state-text{color:var(--text-muted);font-size:.95rem}.otp-input-group{justify-content:center;gap:8px;display:flex}.otp-input{text-align:center;width:48px;height:56px;font-family:var(--font-en);background:var(--bg-input);border:2px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);transition:all var(--transition-fast);outline:none;font-size:1.5rem;font-weight:700}.otp-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.section-title{color:var(--text-primary);margin:24px 0 12px;font-size:1rem;font-weight:600}.divider{background:var(--border-color);height:1px;margin:16px 0}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.text-center{text-align:center}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.form-row-2{grid-template-columns:1fr;display:grid}@media (min-width:640px){.form-row-2{grid-template-columns:repeat(2,1fr)}}.profile-avatar{object-fit:cover;border:3px solid var(--primary);width:80px;height:80px;box-shadow:0 0 20px var(--primary-glow);border-radius:50%}.profile-avatar-placeholder{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;font-size:2rem;font-weight:700;display:flex}.pagination{justify-content:center;align-items:center;gap:4px;padding:16px;display:flex}.pagination-btn{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);padding:8px 12px;font-size:.85rem}.pagination-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.pagination-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.search-bar{margin-bottom:16px;position:relative}.search-bar input{width:100%;font-family:var(--font-thai);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);transition:all var(--transition-fast);outline:none;padding:12px 16px 12px 44px;font-size:.9rem}.search-bar input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.search-bar-icon{color:var(--text-muted);font-size:1.1rem;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.broadcast-preview{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin:16px 0;padding:20px}.broadcast-preview-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:.75rem}.broadcast-preview-message{color:var(--text-primary);white-space:pre-wrap;font-size:.95rem;line-height:1.6}.tabs{border-bottom:1px solid var(--border-color);margin-bottom:16px;display:flex}.tab-item{color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);font-size:.9rem;font-weight:500;font-family:var(--font-thai);background:0 0;border:none;border-bottom:2px solid #0000;padding:12px 20px}.tab-item:hover{color:var(--text-primary)}.tab-item.active{color:var(--primary-light);border-bottom-color:var(--primary)}.modal-backdrop{-webkit-backdrop-filter:blur(4px);z-index:1000;background:#000000bf;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:100%;max-width:500px;max-height:90vh;box-shadow:var(--shadow-lg);padding:32px;animation:.3s scaleIn;position:relative;overflow-y:auto}.modal-content h2{color:var(--text-primary);margin-bottom:24px;font-size:1.25rem;font-weight:700}.modal-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:1.5rem;line-height:1}.modal-close:hover{color:var(--text-primary)}.card-scene{aspect-ratio:1.586;perspective:1200px;cursor:pointer;width:100%;margin-bottom:24px}.card-container{width:100%;height:100%;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .8s cubic-bezier(.4,0,.2,1);position:relative}.card-container.is-flipped{transform:rotateY(180deg)}.card-face{backface-visibility:hidden;border-radius:var(--radius-xl);width:100%;height:100%;position:absolute;overflow:hidden}.card-front{transform:rotateY(0)translateZ(1px)}.card-back{border:1px solid var(--border-color);background:#fff;justify-content:center;align-items:center;display:flex;transform:rotateY(180deg)translateZ(1px);box-shadow:0 10px 30px #0000004d}.card-back-content{background:linear-gradient(135deg,#fff 0%,#f1f5f9 100%);flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:20px;display:flex}.qr-wrapper{border-radius:var(--radius-lg);background:#fff;margin-bottom:16px;padding:12px;box-shadow:0 4px 12px #0000001a}.qr-wrapper canvas{width:140px!important;height:140px!important}.member-id-display{font-family:var(--font-en);letter-spacing:3px;color:#1a1f35;margin-bottom:4px;font-size:1.2rem;font-weight:700}.scan-instruction{color:#64748b;margin-bottom:20px;font-size:.8rem}.card-back-logo{color:var(--primary);opacity:.6;font-size:.9rem;font-weight:800}.public-hero{background:linear-gradient(160deg,var(--bg-primary)0%,#0d2818 40%,#16a34a 100%);text-align:center;padding:48px 24px 56px;position:relative;overflow:hidden}.public-hero:before{content:"";pointer-events:none;background:radial-gradient(circle,#22c55e26 0%,#0000 70%);border-radius:50%;width:500px;height:500px;position:absolute;top:-50%;right:-30%}.public-hero:after{content:"";pointer-events:none;background:radial-gradient(circle,#22c55e1a 0%,#0000 70%);border-radius:50%;width:400px;height:400px;position:absolute;bottom:-60%;left:-20%}.public-hero-badge{border-radius:var(--radius-full);color:var(--primary-light);text-transform:uppercase;letter-spacing:.15em;background:#22c55e26;border:1px solid #22c55e4d;align-items:center;gap:6px;margin-bottom:16px;padding:6px 16px;font-size:.7rem;font-weight:600;display:inline-flex}.public-hero h1{color:#fff;z-index:1;margin-bottom:8px;font-size:2rem;font-weight:800;position:relative}.public-hero h1 span{color:var(--primary-light)}.public-hero p{color:#ffffffb3;z-index:1;max-width:400px;margin:0 auto;font-size:.9rem;position:relative}@media (min-width:768px){.public-hero{padding:64px 24px 72px}.public-hero h1{font-size:2.5rem}}.category-pills{-ms-overflow-style:none;scrollbar-width:none;gap:8px;padding:0 16px 8px;display:flex;overflow-x:auto}.category-pills::-webkit-scrollbar{display:none}.category-pill{white-space:nowrap;border-radius:var(--radius-full);border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-normal);flex-shrink:0;padding:8px 20px;font-size:.85rem;font-weight:600}.category-pill:hover{border-color:var(--primary);color:var(--primary-light)}.category-pill.active{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-color:#0000;box-shadow:0 4px 12px #22c55e4d}.menu-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);transition:all var(--transition-normal);overflow:hidden}.menu-card:hover{border-color:var(--border-hover);transform:translateY(-4px);box-shadow:0 12px 32px #0000004d}.menu-card-image{aspect-ratio:4/3;background:var(--bg-elevated);position:relative;overflow:hidden}.menu-card-image img{object-fit:cover;width:100%;height:100%;transition:transform .6s}.menu-card:hover .menu-card-image img{transform:scale(1.08)}.menu-card-body{padding:16px 20px 20px}.menu-card-name{color:var(--text-primary);transition:color var(--transition-fast);margin-bottom:4px;font-size:1rem;font-weight:700}.menu-card:hover .menu-card-name{color:var(--primary-light)}.menu-card-desc{color:var(--text-muted);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-bottom:12px;font-size:.8rem;line-height:1.5;display:-webkit-box;overflow:hidden}.menu-card-footer{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;padding-top:12px;display:flex}.price-badge{border-radius:var(--radius-full);font-family:var(--font-en);color:var(--primary-light);background:#22c55e1f;border:1px solid #22c55e40;align-items:center;padding:4px 14px;font-size:.95rem;font-weight:700;display:inline-flex}.menu-card-category{-webkit-backdrop-filter:blur(8px);border-radius:var(--radius-full);color:#ffffffe6;text-transform:uppercase;letter-spacing:.05em;background:#0a0e1ab3;padding:4px 12px;font-size:.65rem;font-weight:600;position:absolute;top:12px;left:12px}.cart-card{background:var(--bg-elevated);border:1px dashed var(--border-hover);border-radius:var(--radius-xl);padding:24px}.cart-item{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);transition:all var(--transition-fast);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.cart-item:hover{border-color:var(--border-hover)}.mini-menu-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-normal);cursor:default;gap:12px;padding:12px;display:flex}.mini-menu-card:hover{border-color:var(--primary);background:var(--bg-card-hover)}.mini-menu-card-image{border-radius:var(--radius-md);background:var(--bg-elevated);flex-shrink:0;width:72px;height:72px;position:relative;overflow:hidden}.mini-menu-card-image img{object-fit:cover;width:100%;height:100%}.btn-add-cart{border-radius:var(--radius-md);background:var(--bg-elevated);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.btn-add-cart:hover{background:var(--primary);color:#fff;transform:scale(1.1)}.qty-controls{background:var(--bg-input);border-radius:var(--radius-md);border:1px solid var(--border-color);align-items:center;gap:8px;padding:4px 8px;display:flex}.qty-btn{width:28px;height:28px;color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:flex}.qty-btn:hover{color:var(--primary-light)}.qty-btn.danger:hover{color:var(--danger)}.qty-value{font-family:var(--font-en);color:var(--text-primary);text-align:center;min-width:16px;font-size:.85rem;font-weight:700}.order-summary{background:linear-gradient(135deg,var(--primary-dark)0%,#0d4a22 100%);border-radius:var(--radius-xl);color:#fff;padding:20px 24px}.order-summary-row{justify-content:space-between;align-items:center;display:flex}.order-summary-label{text-transform:uppercase;letter-spacing:.1em;opacity:.7;font-size:.75rem;font-weight:600}.order-summary-value{font-family:var(--font-en);font-size:1.5rem;font-weight:800}
