@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap";@font-face{font-family:Fredoka;font-style:normal;font-weight:700;font-stretch:100%;src:url(/fonts/Fredoka-Bold.ttf)format("truetype")}:root{--font-family:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--bg-main:#090d16;--bg-surface:#151c2f99;--bg-card:#1e293b73;--bg-card-hover:#1e293bb3;--border-color:#ffffff14;--text-main:#f8fafc;--text-muted:#94a3b8;--text-accent:#38bdf8;--primary:#38bdf8;--primary-hover:#0ea5e9;--primary-glow:#38bdf826;--success:#34d399;--success-glow:#34d3991f;--special:#f43f5e;--special-hover:#e11d48;--special-glow:#f43f5e26;--warning:#fbbf24;--shadow-sm:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-md:0 10px 15px -3px #0000004d, 0 4px 6px -4px #0000004d;--shadow-lg:0 20px 25px -5px #0006, 0 8px 10px -6px #0006}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-main);color:var(--text-main);min-height:100vh;line-height:1.5;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0f172a4d}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff40}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse-special{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(.97)}}.app-container{background-color:#0c1222;flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;padding-bottom:32px;display:flex;position:relative;box-shadow:0 0 40px #0009}.app-header{background:linear-gradient(#0f172acc 0%,#0f172a00 100%);flex-direction:column;gap:6px;padding:24px 20px 16px;display:flex}.header-title-row{justify-content:space-between;align-items:center;display:flex}.logo{color:#fff;letter-spacing:.5px;font-family:Fredoka,Quicksand,Nunito,system-ui,-apple-system,sans-serif;font-size:24px;font-weight:700;display:inline-block}.logo-font{font-family:Fredoka,Quicksand,Nunito,system-ui,-apple-system,sans-serif}.logo-e{color:var(--primary);text-shadow:0 0 15px #38bdf866;display:inline-block;transform:rotate(-10deg)}.header-date{color:var(--text-muted);font-size:13px;font-weight:500}.section-title-container{justify-content:space-between;align-items:center;margin-top:20px;margin-bottom:12px;padding:0 20px;display:flex}.section-title{align-items:center;gap:8px;font-size:17px;font-weight:700;display:flex}.section-title svg{color:var(--primary)}.section-count{color:var(--text-muted);background:#ffffff14;border-radius:99px;padding:2px 8px;font-size:12px}.specials-scroll-container{scroll-snap-type:x mandatory;gap:14px;padding:4px 20px 12px;display:flex;overflow-x:auto}.specials-scroll-container.single-item{padding:0 20px;display:block}.specials-scroll-container.single-item .special-card{flex:none;width:100%}.special-card{scroll-snap-align:start;background-image:linear-gradient(135deg,#f43f5e1f 0%,#1e293b80 100%);flex:0 0 85%;box-shadow:var(--shadow-md)!important;border:1px solid #f43f5e40!important}.special-stamp{border:3px double var(--special);width:76px;height:76px;color:var(--special);opacity:.25;pointer-events:none;z-index:1;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:15px;font-weight:800;display:flex;position:absolute;top:-12px;right:-12px;transform:rotate(-15deg)}.catalog-list{flex-direction:column;gap:12px;padding:0 20px;display:flex}.store-card{background-color:var(--bg-surface);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:20px;flex-direction:column;gap:12px;padding:16px;transition:transform .2s,border-color .2s,background-color .2s;display:flex;position:relative;overflow:hidden;transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(#fff,#000)}.store-card-bg{z-index:1;border-radius:inherit;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;top:0;left:0;transform:translateZ(0)}.store-card:active{background-color:var(--bg-card-hover);border-color:#ffffff26}.store-card-header{z-index:2;justify-content:space-between;align-items:flex-start;display:flex;position:relative}.store-info-block{flex-direction:column;gap:2px;max-width:75%;display:flex}.store-name{color:var(--text-main);font-size:16px;font-weight:700}.store-city-badge{color:var(--primary);background:#38bdf81a;border:1px solid #38bdf826;border-radius:6px;align-self:flex-start;padding:2px 6px;font-size:11px;font-weight:600}.store-distance-badge{color:var(--primary);background:#38bdf81a;border:1px solid #38bdf826;border-radius:8px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;font-weight:600;display:flex}.store-card-body{color:var(--text-muted);z-index:2;flex-direction:column;gap:4px;font-size:12px;display:flex;position:relative}.store-detail-row{align-items:flex-start;gap:6px;display:flex}.store-detail-row svg{color:var(--text-muted);flex-shrink:0;margin-top:2px}.store-card-footer{border-top:1px solid var(--border-color);z-index:2;justify-content:space-between;align-items:center;padding-top:12px;display:flex;position:relative}.store-price-box{align-items:baseline;display:flex}.store-price-val{color:var(--text-main);font-size:22px;font-weight:800}.store-price-val.special-color{color:var(--special)}.store-buy-btn{background:var(--primary);color:#0f172a;cursor:pointer;border:none;border-radius:12px;padding:8px 18px;font-size:13px;font-weight:700;transition:all .2s;box-shadow:0 4px 10px #38bdf833}.store-buy-btn.special-btn{background:var(--special);color:#fff;box-shadow:0 4px 10px #f43f5e59}.store-buy-btn:active{transform:scale(.95)}.store-qty-text{color:var(--text-muted);margin-top:2px;font-size:11px}.store-qty-text.low-stock{color:var(--warning);font-weight:600}.store-qty-text.out-of-stock{color:var(--special);font-weight:600}.modal-overlay{z-index:100000;-webkit-backdrop-filter:blur(8px);background:#0f172ab3;justify-content:center;align-items:flex-start;width:100vw;height:100vh;padding:40px 20px;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.modal-content{border:1px solid var(--border-color);width:100%;max-width:380px;box-shadow:var(--shadow-lg);text-align:center;-webkit-user-select:none;user-select:none;background:#111827;border-radius:24px;flex-direction:column;align-items:center;margin:0 auto;padding:24px;animation:.3s cubic-bezier(.34,1.56,.64,1) scaleIn;display:flex;position:relative}.modal-close-btn{color:var(--text-muted);cursor:pointer;background:#ffffff0d;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:background-color .2s;display:flex;position:absolute;top:16px;right:16px}.modal-close-btn:active{background:#ffffff26}.modal-title{margin-bottom:6px;font-size:18px;font-weight:700}.modal-desc{color:var(--text-muted);margin-bottom:20px;font-size:13px}.qr-code-box{background:#fff;border-radius:16px;justify-content:center;align-items:center;width:180px;height:180px;margin-bottom:18px;padding:8px;display:flex;box-shadow:0 8px 16px #00000040}.qr-code-img{-webkit-user-select:auto;user-select:auto;-webkit-touch-callout:default;max-width:100%;max-height:100%;display:block}.wechat-id-box{border:1px solid var(--border-color);background:#ffffff0a;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;width:100%;margin-bottom:8px;padding:8px 14px;display:flex}.wechat-id-text{color:var(--primary);font-family:monospace;font-size:14px;font-weight:700}.copy-btn{background:var(--primary);color:#0f172a;cursor:pointer;border:none;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:700;transition:all .2s}.copy-btn:active{transform:scale(.95)}@keyframes toastFadeIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.toast-container{color:#fff;z-index:110000;background:#10b981f2;border-radius:12px;padding:10px 20px;font-size:13px;font-weight:600;animation:.2s ease-out forwards toastFadeIn;position:fixed;bottom:30px;left:50%;transform:translate(-50%);box-shadow:0 10px 15px -3px #0000004d}.toast-container.error{background:#f43f5ef2}.admin-layout{flex-direction:column;gap:16px;padding:20px;animation:.3s fadeIn;display:flex}.admin-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:14px;display:flex}.admin-title{color:var(--text-main);font-size:20px;font-weight:800}.admin-logout-btn{color:var(--special);cursor:pointer;background:#f43f5e1a;border:1px solid #f43f5e26;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600}.admin-logout-btn:active{background:#f43f5e40}.form-card{background:var(--bg-surface);border:1px solid var(--border-color);max-width:360px;box-shadow:var(--shadow-lg);border-radius:20px;flex-direction:column;gap:16px;margin:80px auto;padding:20px;animation:.3s ease-out scaleIn;display:flex}.form-title{text-align:center;font-size:20px;font-weight:700}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--text-muted);font-size:12px;font-weight:600}.form-input{box-sizing:border-box;border:1px solid var(--border-color);color:#fff;background:#ffffff0d;border-radius:12px;outline:none;width:100%;min-width:0;max-width:100%;padding:10px 14px;font-size:14px;transition:all .2s;display:block}.form-input:focus{border-color:var(--primary);background:#ffffff14}.form-btn{background:var(--primary);color:#0f172a;cursor:pointer;border:none;border-radius:12px;margin-top:8px;padding:12px;font-size:14px;font-weight:700;box-shadow:0 4px 12px #38bdf833}.form-btn:active{transform:scale(.98)}.admin-store-card{background:var(--bg-surface);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:20px;flex-direction:column;gap:12px;padding:16px;display:flex;overflow:hidden}.pricing-controls{border-top:1px solid var(--border-color);grid-template-columns:1fr 1fr;gap:12px;margin-top:4px;padding-top:12px;display:grid}.special-switch-container{border:1px solid var(--border-color);background:#ffffff05;border-radius:12px;grid-column:span 2;justify-content:space-between;align-items:center;margin-top:4px;padding:8px 12px;display:flex}.switch-label{font-size:13px;font-weight:600}.switch-checkbox{appearance:none;cursor:pointer;background:#ffffff1a;border-radius:99px;outline:none;width:44px;height:22px;transition:background-color .2s;position:relative}.switch-checkbox:checked{background:var(--special)}.switch-checkbox:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #0003}.switch-checkbox:checked:before{transform:translate(22px)}.admin-save-btn{background:var(--success);color:#0f172a;cursor:pointer;border:none;border-radius:12px;grid-column:span 2;justify-content:center;justify-self:center;align-items:center;gap:6px;width:160px;margin-bottom:8px;padding:10px;font-size:13px;font-weight:700;transition:all .2s;display:flex;box-shadow:0 4px 10px #34d39926}.admin-save-btn:active{transform:scale(.97)}.empty-state{text-align:center;color:var(--text-muted);padding:40px 20px;font-size:14px}.empty-state svg{color:var(--border-color);margin-bottom:8px}.location-notice{color:var(--warning);background:#fbbf2414;border:1px solid #fbbf2426;border-radius:12px;align-items:center;gap:8px;margin:10px 20px 0;padding:10px 16px;font-size:12px;display:flex}.order-card-wrapper{border:1px solid var(--border-color);width:100%;box-shadow:var(--shadow-md);background:#090d16;border-radius:12px;margin-bottom:12px;position:relative}.generated-card-img{clip-path:inset(0 0 100%);-webkit-user-select:auto;user-select:auto;-webkit-touch-callout:default;width:100%;animation:1.5s cubic-bezier(.25,1,.5,1) forwards revealFromTop;display:block}.scan-beam{background:linear-gradient(90deg, transparent, var(--primary), transparent);width:100%;height:4px;box-shadow:0 0 8px var(--primary), 0 0 16px var(--primary);opacity:0;pointer-events:none;animation:1.5s cubic-bezier(.25,1,.5,1) forwards scanMove;position:absolute;left:0}@keyframes revealFromTop{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}@keyframes scanMove{0%{opacity:0;top:0}5%{opacity:1}95%{opacity:1}to{opacity:0;top:100%}}input[type=date],.form-input[type=date]{appearance:none;box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:100%!important}input[type=date]::-webkit-date-and-time-value{text-align:left;min-height:1em;margin:0;padding:0}
