:root{color:#293422;background:#fffaf5;font-family:Noto Sans Thai,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,a{font:inherit}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #ffbd2e}.page-shell{width:min(100% - 32px,1040px);margin:0 auto;padding:22px 0 48px}.topbar{justify-content:space-between;align-items:center;padding-bottom:34px;display:flex}.brand{align-items:center;height:50px;text-decoration:none;display:flex}.brand-logo{object-fit:contain;width:auto;height:50px;display:block}.member-tools{color:#53627a;align-items:center;gap:9px;font-size:.92rem;display:flex}.notification{color:#f46f61;font-size:1.1rem}.hero{margin-bottom:24px}.hero h1{margin:4px 0;font-size:clamp(1.8rem,4vw,2.55rem)}.hero p{color:#6d7569;margin:0}.eyebrow{color:#6aa64e;letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:700}.dashboard-grid{grid-template-columns:1fr;gap:16px;display:grid}.points-card,.offer-card,.activity-card{border-radius:20px;padding:24px;box-shadow:0 10px 30px #1e2f5514}.points-card{color:#fff;background:linear-gradient(135deg,#f58b36,#ed9d3c)}.points-card p{opacity:.86;margin:0 0 12px}.points-card strong{font-size:clamp(2rem,6vw,3.3rem);line-height:1;display:block}.points-card strong span{font-size:1rem;font-weight:600}.offer-card,.activity-card{background:#fff}.offer-heading,.section-heading{justify-content:space-between;align-items:start;gap:12px;display:flex}.badge{color:#4c8136;background:#edf5e7;border-radius:999px;padding:4px 9px;font-size:.78rem;font-weight:700}.offer-card h2{color:#5f9d47;margin:22px 0 5px;font-size:2rem}.offer-card p{color:#687262;margin:0}.primary-button,.secondary-button{cursor:pointer;border:0;border-radius:10px;margin-top:20px;padding:11px 16px;font-weight:700}.primary-button{color:#fff;background:#6aa64e;width:100%}.primary-button:hover:not(:disabled){background:#54873e}.primary-button:disabled{color:#556951;cursor:default;background:#dbe8d4}.secondary-button{color:#e67e2f;background:#fff}.safe-note{font-size:.8rem;margin-top:15px!important}.activity-card{margin-top:16px}.section-heading h2{margin:3px 0 0}.section-heading a{color:#e67e2f;font-weight:700;text-decoration:none}.activity-list{margin:22px 0 0;padding:0;list-style:none}.activity-list li{border-top:1px solid #e8ebf1;gap:12px;padding:14px 0;display:flex}.activity-icon{border-radius:50%;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.activity-icon.success{color:#4c8136;background:#edf5e7}.activity-icon.points{color:#d85f51;background:#ffe8e3}.activity-list strong,.activity-list span{display:block}.activity-list span{color:#6d7569;margin-top:2px;font-size:.88rem}@media (width>=768px){.page-shell{width:min(100% - 64px,1040px);padding-top:30px}.dashboard-grid{grid-template-columns:1fr 1.15fr}.points-card,.offer-card{min-height:270px}.primary-button{width:auto}}.view-selector{flex-wrap:wrap;gap:8px;margin:-16px 0 28px;display:flex}.view-selector button{color:#4c8136;cursor:pointer;background:#fff;border:1px solid #d8e4d1;border-radius:999px;padding:8px 14px;font-weight:700}.view-selector button[aria-pressed=true]{color:#fff;background:#6aa64e;border-color:#6aa64e}.merchant-hero{margin-bottom:20px}.merchant-hero h1{margin:4px 0}.merchant-hero p{color:#6d7569;margin:0}.scan-card{text-align:center;background:#fff;border-radius:20px;max-width:620px;padding:28px;box-shadow:0 10px 30px #1e2f5514}.qr-placeholder{color:#4c8136;background:#edf5e7;border:2px dashed #6aa64e;border-radius:16px;justify-content:center;align-items:center;width:150px;height:150px;margin:0 auto 18px;font-size:5rem;display:flex}.merchant-member{text-align:left;background:#fffaf5;border-radius:14px;padding:18px}.merchant-member h2{margin:3px 0}.merchant-member strong{color:#5f9d47;margin:12px 0 4px;font-size:2rem;display:block}.merchant-member p{margin:4px 0}.preview-confirmation{color:#416d2e;text-align:left;background:#edf5e7;border-radius:12px;margin:18px 0 0;padding:12px}.admin-hero{margin-bottom:20px}.admin-hero h1{margin:4px 0;font-size:clamp(1.8rem,4vw,2.55rem)}.admin-hero p{color:#6d7569;margin:0}.admin-card{background:#fff;border-radius:20px;max-width:760px;padding:22px;box-shadow:0 10px 30px #1e2f5514}.admin-tabs{border-bottom:1px solid #e8ebf1;gap:18px;margin-bottom:18px;display:flex}.admin-tabs button{color:#687262;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:8px 2px 10px;font-weight:700}.admin-tabs button[aria-pressed=true]{color:#4c8136;border-color:#6aa64e}.management-list{gap:12px;display:grid}.management-row{border:1px solid #edf0e9;border-radius:14px;justify-content:space-between;align-items:center;gap:18px;padding:16px;display:flex}.management-row h2{margin:0 0 3px;font-size:1.15rem}.management-row p{color:#6d7569;margin:0}.management-actions{align-items:center;gap:10px;display:flex}.status-badge{white-space:nowrap;border-radius:999px;padding:5px 10px;font-size:.82rem;font-weight:700}.status-badge.active{color:#4c8136;background:#edf5e7}.status-badge.suspended{color:#b85247;background:#ffe8e3}.management-button{width:auto;margin:0}.admin-safe-note{color:#687262;background:#fffaf5;border-radius:10px;margin:18px 0 0;padding:12px;font-size:.84rem;line-height:1.5}@media (width<=480px){.management-row,.management-actions{flex-direction:column;align-items:stretch}.management-button{width:100%}}.admin-section-selector{gap:8px;margin:-4px 0 18px;display:flex}.admin-section-selector button{color:#4c8136;cursor:pointer;background:#fff;border:1px solid #d8e4d1;border-radius:999px;padding:8px 14px;font-weight:700}.admin-section-selector button[aria-pressed=true]{color:#fff;background:#6aa64e;border-color:#6aa64e}.overview-card{background:#fff;border-radius:20px;margin-top:16px;padding:22px;box-shadow:0 10px 30px #1e2f5514}.overview-card h2{margin:3px 0 18px}.overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.overview-metric{background:#fffaf5;border-radius:12px;padding:14px}.overview-metric span{color:#687262;font-size:.82rem;display:block}.overview-metric strong{color:#4c8136;margin-top:5px;font-size:1.25rem;display:block}.overview-metric small{font-size:.75rem}.all-time-overview{background:#edf5e7}@media (width>=768px){.overview-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}.redemption-filters{flex-wrap:wrap;gap:8px;margin:14px 0;display:flex}.redemption-filters button{color:#4c8136;cursor:pointer;background:#fff;border:1px solid #d8e4d1;border-radius:999px;padding:7px 11px}.redemption-filters button[aria-pressed=true]{color:#fff;background:#6aa64e}.redemption-list{gap:10px;display:grid}.redemption-row{border:1px solid #edf0e9;border-radius:12px;gap:8px;padding:14px;display:grid}.redemption-row div span{color:#687262;font-size:.78rem;display:block}@media (width>=768px){.redemption-row{grid-template-columns:1.2fr 1fr 1fr 1.2fr auto;align-items:center}}.role-selector{flex-wrap:wrap;gap:8px;margin:0 0 10px;display:flex}.role-selector button{color:#a85d2c;cursor:pointer;background:#fffaf5;border:1px solid #efcfb8;border-radius:999px;padding:7px 12px;font-weight:700}.role-selector button[aria-pressed=true]{color:#fff;background:#f58b36;border-color:#f58b36}.local-banner{color:#456832;background:#edf5e7;border-radius:16px;padding:14px 18px}.local-error{color:#963a2c;background:#fff0eb;border-radius:12px;padding:14px}.mini-app-guidance{box-sizing:border-box;max-width:38rem;margin:2rem auto;padding:clamp(1.25rem,4vw,2rem)}.mini-app-guidance h1{margin:.35rem 0 1rem}.mini-app-guidance p{overflow-wrap:anywhere;line-height:1.65}.mini-app-guidance .local-error{margin:0 0 1rem}.mini-app-shell .view-selector{justify-content:flex-end}#local-login,#local-estimate{text-align:left;gap:16px;display:grid}#local-login select,#local-estimate select{width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #d8e5d0;border-radius:12px;padding:14px}.local-purchase{text-align:left}.local-purchase button{margin-top:16px}.activity-list span{overflow-wrap:anywhere}.credit-admin-shop{padding:1rem 0}.credit-admin-shop+.credit-admin-shop{border-top:1px solid #edf0e9}.credit-admin-shop h3,.credit-admin-shop h4{margin-bottom:.5rem}.credit-admin-forms{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin:1rem 0;display:grid}.credit-admin-forms form,.credit-confirmation{background:#fffaf5;border:1px solid #d8e5d0;border-radius:1rem;gap:.65rem;padding:1rem;display:grid}.credit-admin-forms label{gap:.35rem;display:grid}.admin-section-selector{flex-wrap:wrap}.admin-pending-list{gap:1rem;margin-top:1rem;display:grid}.admin-pending-item{border:1px solid #d8e5d0;border-radius:1rem;min-width:0;padding:1rem}.admin-pending-item h3{margin:0 0 .4rem}.admin-pending-item p{overflow-wrap:anywhere;margin:.4rem 0}.admin-pending-actions,.admin-confirm-actions{flex-wrap:wrap;align-items:center;gap:.65rem;margin-top:.8rem;display:flex}.admin-pending-actions button,.admin-confirm-actions button{min-height:2.75rem}.admin-review-confirmation{background:#fffaf5;border-radius:.8rem;margin-top:1rem;padding:1rem}.admin-review-confirmation form{gap:.6rem;display:grid}.admin-review-confirmation label{font-weight:700}.admin-review-confirmation textarea{box-sizing:border-box;font:inherit;width:100%;min-height:5rem;padding:.7rem}@media (width<=480px){.admin-pending-actions,.admin-confirm-actions{flex-direction:column;align-items:stretch}.admin-pending-actions button,.admin-confirm-actions button{width:100%}}.top-up-card{max-width:620px}.top-up-form{gap:.7rem;display:grid}.top-up-form label{font-weight:700}.top-up-form input{box-sizing:border-box;font:inherit;width:100%;min-width:0;padding:.8rem}.top-up-form .primary-button,.top-up-actions button{margin-top:.4rem}.top-up-payment img[data-top-up-qr]{aspect-ratio:1;width:100%;max-width:min(100%,320px);height:auto;margin:1rem auto;display:block}.top-up-payment p{line-height:1.6}.top-up-actions{flex-wrap:wrap;gap:.7rem;display:flex}.top-up-status{background:#edf5e7;border:1px solid #d8e5d0;border-radius:12px;margin:.8rem 0;padding:.85rem}.top-up-status[data-status=rejected]{background:#fff0eb;border-color:#f1c8bd}.top-up-status[data-status=cancelled]{background:#f4f5f2;border-color:#dde1d8}.top-up-status strong,.top-up-status span{display:block}.top-up-status span{color:#556951;overflow-wrap:anywhere}.top-up-history{margin:0;padding:0;list-style:none}@media (width<=480px){.top-up-actions{flex-direction:column}.top-up-actions button{width:100%}}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-group label{color:#293422;font-size:.95rem;font-weight:700}.form-group input,.form-group select,.form-group textarea{box-sizing:border-box;width:100%;min-width:0;font:inherit;color:inherit;background:#fff;border:1px solid #d8e5d0;border-radius:12px;padding:12px 14px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline-offset:1px;border-color:#6aa64e;outline:3px solid #ffbd2e}.form-group textarea{resize:vertical;min-height:80px}.form-group .required{color:#d85f51}.form-row{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=600px){.form-row{grid-template-columns:1fr 1fr}}.checkbox-group{align-items:flex-start;gap:10px;margin:20px 0;display:flex}.checkbox-group input[type=checkbox]{accent-color:#6aa64e;cursor:pointer;width:20px;height:20px;margin-top:2px}.checkbox-group label{cursor:pointer;font-size:.9rem;line-height:1.45}.field-error{color:#963a2c;margin-top:2px;font-size:.85rem;font-weight:600}.field-help{color:#6d7569;margin-top:2px;font-size:.8rem}.form-actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.local-success{color:#356225;background:#edf5e7;border:1px solid #c9dec2;border-radius:12px;margin-bottom:16px;padding:14px}.badge-warning{color:#856404;background:#fff3cd}.badge-info{color:#0c5460;background:#d1ecf1}.badge-teal{color:#0f5132;background:#d2f4ea}.badge-success{color:#4c8136;background:#edf5e7}.badge-error{color:#842029;background:#f8d7da}.badge-muted{color:#6c757d;background:#e9ecef}.status-box{border:1px solid #0000;border-radius:14px;margin:16px 0;padding:18px}.box-pending{background:#fffdf5;border-color:#ffeeba}.box-needs-info{background:#f0f9ff;border-color:#bee5eb}.box-waiting-line{background:#f0fff4;border-color:#c3e6cb}.box-active{background:#edf5e7;border-color:#c9dec2}.box-rejected{background:#fff5f5;border-color:#f5c6cb}.box-cancelled{background:#f8f9fa;border-color:#dae0e5}.status-box h2{margin:0 0 6px;font-size:1.25rem}.status-box p{margin:4px 0 0;line-height:1.5}.receipt-card{text-align:left}.receipt-box{background:#fffaf5;border:2px dashed #6aa64e;border-radius:16px;margin:20px 0;padding:20px}.receipt-box h2{color:#5f9d47;margin:4px 0;font-size:1.4rem}.receipt-note{color:#556951;font-size:.95rem;line-height:1.6}.detail-list{gap:12px;margin:16px 0;display:grid}.detail-row{border-bottom:1px solid #edf0e9;justify-content:space-between;gap:12px;padding-bottom:8px;display:flex}.detail-row dt{color:#6d7569;min-width:120px;font-size:.9rem;font-weight:600}.detail-row dd{text-align:right;word-break:break-word;margin:0;font-weight:500}.tracking-actions{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.admin-queue-container{max-width:1100px;margin:0 auto;padding:1.5rem 1rem}.queue-filters-section{margin:1rem 0;padding-bottom:.5rem;overflow-x:auto}.filter-pills{flex-wrap:nowrap;gap:.5rem;display:flex}.filter-pill{color:#475569;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e2e8f0;border-radius:9999px;padding:.4rem .85rem;font-size:.85rem;transition:all .15s}.filter-pill:hover{background:#f8fafc;border-color:#cbd5e1}.filter-pill.active{color:#fff;background:#0f172a;border-color:#0f172a;font-weight:600}.action-btn-primary{color:#fff;cursor:pointer;background:#2563eb;border:1px solid #2563eb;border-radius:8px;font-weight:500;transition:background .15s}.action-btn-primary:hover:not(:disabled){background:#1d4ed8}.action-btn-primary:disabled{opacity:.6;cursor:not-allowed}.action-btn-secondary{color:#475569;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;font-weight:500;transition:all .15s}.action-btn-secondary:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.action-btn-secondary:disabled{opacity:.6;cursor:not-allowed}@media (width>=769px){.mobile-only{display:none!important}}@media (width<=768px){.desktop-only{display:none!important}}
