*{box-sizing:border-box}body{color:#3b2314;-webkit-font-smoothing:antialiased;background:#f3ead9;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button{cursor:pointer;font-family:inherit}button:focus-visible,input:focus-visible{outline-offset:2px;outline:2px solid #b98a2f}img{max-width:100%;display:block}.page{background:#f3ead9;min-height:100svh}.app{background:#fffdf9;border-left:1px solid #e8ddd0;border-right:1px solid #e8ddd0;flex-direction:column;max-width:480px;min-height:100svh;margin:0 auto;display:flex;position:relative}.app-header{z-index:20;background:#fffdf9;border-bottom:1px solid #efe6d8;padding:12px 16px 0;position:sticky;top:0}.location-bar{text-align:left;color:#3b2314;background:#fff;border:1px solid #e8ddd0;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px 12px 12px 16px;display:flex;box-shadow:0 1px 3px #3b231414}.location-text{flex-direction:column;gap:2px;min-width:0;display:flex}.location-text strong{font-size:16px}.location-text span{color:#8a7a6a;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.location-chevron{color:#fff;background:#6b4a2f;border-radius:50%;flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.category-tabs{scrollbar-width:none;gap:4px;margin-top:8px;display:flex;overflow-x:auto}.category-tabs::-webkit-scrollbar{display:none}.tab{color:#6b5b4c;white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;flex:none;padding:10px 12px;font-size:15px;font-weight:600}.tab.active{color:#3b2314;border-bottom-color:#b98a2f}.app-main{flex:1;padding:16px 16px 24px}.app-main h2{color:#3b2314;margin:4px 0 12px;font-size:20px}.voucher-section h2{align-items:center;gap:8px;display:flex}.voucher-section h2 svg{color:#2e7d32}.voucher-list{scrollbar-width:none;gap:12px;padding-bottom:4px;display:flex;overflow-x:auto}.voucher-list::-webkit-scrollbar{display:none}.voucher-card{background:#fff;border:1px solid #e8ddd0;border-radius:14px;flex:0 0 220px;grid-template-columns:1fr auto;grid-template-areas:"tag claim""amount claim""provider claim";align-items:center;gap:2px 10px;padding:14px;display:grid;box-shadow:0 1px 3px #3b231414}.voucher-tag{color:#fff;background:#2e7d32;border-radius:4px;grid-area:tag;width:fit-content;padding:3px 8px;font-size:12px;font-weight:700;display:inline-block}.voucher-amount{color:#2e7d32;grid-area:amount;font-size:22px;font-weight:800}.voucher-provider{color:#6b5b4c;grid-area:provider;font-size:13px}.btn-claim{color:#3b2314;background:#fff;border:2px solid #b98a2f;border-radius:10px;grid-area:claim;align-items:center;gap:5px;min-height:44px;padding:10px 18px;font-size:15px;font-weight:700;display:inline-flex}.btn-claim.claimed{color:#2e7d32;background:#eef6ee;border-color:#2e7d32}.category-section{margin-top:28px;scroll-margin-top:132px}.product-grid{grid-template-columns:repeat(2,1fr);gap:16px 12px;display:grid}.product-card{min-width:0}.product-btn{text-align:left;color:#3b2314;background:0 0;border:none;flex-direction:column;gap:8px;width:100%;padding:0;display:flex}.product-image-wrap{aspect-ratio:1;background:#f3ead9;border-radius:14px;width:100%;display:block;position:relative;overflow:hidden}.product-image-wrap img{object-fit:cover;width:100%;height:100%}.product-label{color:#fff;background:#2e7d32;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:700;position:absolute;bottom:8px;left:8px}.product-label.static{width:fit-content;position:static}.product-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.price-row{flex-wrap:wrap;align-items:center;gap:6px;margin:0;display:flex}.price{color:#3b2314;font-size:15px;font-weight:700}.price-pill{color:#c0392b;background:#fdecea;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:14px;font-weight:800;display:inline-flex}.price-strike{color:#a08d7c;font-size:13px;text-decoration:line-through}.updated-label{text-align:center;color:#8a7a6a;margin:24px 0 0;font-size:13px}.state-block{text-align:center;color:#3b2314;flex-direction:column;align-items:center;gap:12px;padding:64px 16px;display:flex}.state-block p{margin:0;font-size:16px}.state-hint{color:#8a7a6a;font-size:14px}.spinner{border:3px solid #e8ddd0;border-top-color:#6b4a2f;border-radius:50%;width:32px;height:32px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.btn-primary{color:#fff;background:#3b2314;border:none;border-radius:10px;align-items:center;gap:8px;min-height:44px;padding:12px 20px;font-size:15px;font-weight:700;display:inline-flex}.icon-btn{color:#3b2314;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:8px;display:flex}.bottom-nav{z-index:20;padding:6px 4px calc(8px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e8ddd0;display:flex;position:sticky;bottom:0}.nav-item{color:#8a7a6a;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;min-height:52px;padding:6px 0;font-size:12px;display:flex}.nav-item.active{color:#a5271f;font-weight:700}.sheet-backdrop,.dialog-backdrop{z-index:50;background:#3b23148c;justify-content:center;display:flex;position:fixed;inset:0}.sheet-backdrop{align-items:flex-end}.sheet{background:#fffdf9;border-radius:18px 18px 0 0;flex-direction:column;width:100%;max-width:480px;max-height:86svh;padding:16px 16px 24px;display:flex;overflow:hidden}.sheet-head{justify-content:space-between;align-items:center;display:flex}.sheet-head h2{color:#3b2314;margin:0;font-size:19px}.search-box{color:#8a7a6a;background:#fff;border:1px solid #e0d3c2;border-radius:10px;align-items:center;gap:8px;margin-top:12px;padding:0 12px;display:flex}.search-box input{color:#3b2314;background:0 0;border:none;flex:1;min-width:0;padding:12px 0;font-size:15px}.search-box input:focus{outline:none}.sheet-status{text-align:center;color:#6b5b4c;margin:20px 0}.sheet-error{flex-direction:column;align-items:center;gap:10px;display:flex}.sheet-count{color:#8a7a6a;margin:14px 0 4px;font-size:13px}.outlet-list{margin:8px 0 0;padding:0;list-style:none;overflow-y:auto}.outlet-item{text-align:left;color:#3b2314;background:0 0;border:none;border-bottom:1px solid #efe6d8;align-items:flex-start;gap:10px;width:100%;padding:14px 4px;display:flex}.outlet-item>svg{color:#6b4a2f;flex:none;margin-top:2px}.outlet-item.selected{background:#faf3e3}.outlet-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.outlet-text strong{font-size:15px}.outlet-text span{color:#8a7a6a;font-size:13px}.outlet-meta{align-items:center;gap:4px;display:flex}.outlet-check{color:#2e7d32;flex:none;font-size:12px;font-weight:700}.empty-state{text-align:center;color:#6b5b4c;flex-direction:column;align-items:center;gap:8px;padding:40px 16px;display:flex}.empty-state p{margin:0}.empty-hint{color:#8a7a6a;font-size:14px}.dialog-backdrop{align-items:center;padding:16px}.dialog{background:#fff;border-radius:18px;width:100%;max-width:420px;max-height:88svh;position:relative;overflow-y:auto}.dialog-close{z-index:2;color:#3b2314;background:#ffffffeb;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex;position:absolute;top:10px;right:10px;box-shadow:0 1px 4px #0003}.dialog-image{aspect-ratio:1;object-fit:cover;background:#f3ead9;width:100%}.dialog-body{flex-direction:column;gap:10px;padding:16px 18px 22px;display:flex}.dialog-body h3{color:#3b2314;margin:0;font-size:20px}.dialog-desc{color:#6b5b4c;margin:0;font-size:15px;line-height:1.6}.toast{z-index:60;color:#fff;white-space:nowrap;background:#3b2314;border-radius:999px;padding:11px 18px;font-size:14px;font-weight:600;position:fixed;bottom:92px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000040}@media (width>=768px){.app{max-width:900px}.product-grid{grid-template-columns:repeat(3,1fr)}.sheet{max-width:560px}}@media (width>=1100px){.app{max-width:1080px}.product-grid{grid-template-columns:repeat(4,1fr)}}
