:root{--color-primary: #ff6b00;--color-primary-dark: #e05a00;--color-primary-light: #fff3ec;--color-success: #22c55e;--color-warning: #f59e0b;--color-danger: #ef4444;--color-text: #1a1a1a;--color-text-muted: #6b7280;--color-border: #e5e7eb;--color-bg: #f9fafb;--color-white: #ffffff;--color-card: #ffffff;--color-featured: #fff7ed;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--header-height: 64px;--max-width: 640px;--font-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-base);font-size:15px;line-height:1.5;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;min-height:100dvh}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}img{max-width:100%;display:block}.app-layout{display:flex;flex-direction:column;min-height:100dvh}.app-main{flex:1;padding-bottom:24px}.app-header{position:sticky;top:0;z-index:100;height:var(--header-height);background:linear-gradient(90deg,#2b0e3c,#3a1b63);display:flex;align-items:center;justify-content:space-between;padding:0 16px;gap:8px;box-shadow:0 2px 8px #2b0e3c59}.header-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--color-white);flex-shrink:0}.header-logo{height:45px;width:auto;display:block}.header-brand-text{display:flex;flex-direction:column;line-height:1.15}.header-title{font-size:17px;font-weight:800;letter-spacing:-.3px}.header-subtitle{font-size:11px;font-weight:400;opacity:.8;letter-spacing:.2px}.header-nav{display:flex;align-items:center;gap:8px;flex:1;max-width:280px}.header-search-form{display:flex;align-items:center;gap:4px;width:100%}.header-search-input{height:34px;padding:0 10px;border:none;border-radius:var(--radius-md);font-size:13px;flex:1;min-width:0;background:#ffffff2e;color:var(--color-white);transition:background .15s}.header-search-input::placeholder{color:#ffffffa6}.header-search-input:focus{outline:none;background:#ffffff47}.header-search-btn{background:#fff3;border:none;border-radius:var(--radius-md);padding:6px 10px;font-size:16px;color:var(--color-white);cursor:pointer;line-height:1;transition:background .15s}.header-search-btn:active{background:#ffffff59}.header-cart-btn{position:relative;background:#fff3;border:none;border-radius:var(--radius-md);padding:8px 12px;font-size:20px;color:var(--color-white);line-height:1;transition:background .15s}.header-cart-btn:active{background:#ffffff59}.header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.header-orders-btn{position:relative;display:inline-flex;align-items:center;gap:4px;background:#ffffff26;border:none;border-radius:var(--radius-md);padding:8px 10px;font-size:18px;color:var(--color-white);line-height:1;transition:background .15s;cursor:pointer}.header-orders-btn:active{background:#ffffff59}.header-orders-label{font-size:11px;font-weight:600;letter-spacing:.2px;white-space:nowrap}@media (max-width: 380px){.header-orders-label{display:none}}.cart-badge{position:absolute;top:-4px;right:-4px;background:var(--color-white);color:var(--color-primary);font-size:11px;font-weight:700;border-radius:999px;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;padding:0 4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:var(--radius-md);font-size:14px;font-weight:600;border:none;transition:opacity .15s,transform .1s;cursor:pointer;white-space:nowrap;min-height:44px}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-primary);color:var(--color-white)}.btn-primary:hover{background:var(--color-primary-dark)}.btn-outline{background:transparent;color:var(--color-primary);border:1.5px solid var(--color-primary)}.btn-ghost{background:transparent;color:var(--color-primary);padding:6px 10px;font-size:13px}.btn-danger{background:var(--color-danger);color:var(--color-white)}.btn-full{width:100%}.btn-disabled,.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.btn-add-to-cart{background:var(--color-primary);color:var(--color-white);border:none;border-radius:var(--radius-md);padding:10px 14px;font-size:13px;font-weight:600;width:100%;min-height:44px;transition:background .15s,transform .1s}.btn-add-to-cart:active{transform:scale(.97)}.btn-add-to-cart.in-cart{background:var(--color-success)}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-label{font-size:13px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px}.form-input,.form-select,.form-textarea{width:100%;padding:12px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:16px;font-family:inherit;color:var(--color-text);background:var(--color-white);transition:border-color .15s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary)}.form-textarea{resize:vertical;min-height:80px}.search-form{display:flex;gap:8px}.search-input-wrap{flex:1;position:relative}.search-input{width:100%;padding:12px 40px 12px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-lg);font-size:15px;background:var(--color-white);color:var(--color-text)}.search-input::placeholder{color:#999}.search-input:focus{outline:none;border-color:var(--color-primary);background:var(--color-white)}.search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:16px;color:var(--color-text-muted);padding:4px;cursor:pointer}.search-btn{flex-shrink:0;background:var(--color-primary);color:var(--color-white);font-weight:700;border:none;border-radius:var(--radius-lg);padding:0 18px;min-height:46px}.home-search{padding:12px 16px;background:var(--color-white);border-bottom:1px solid var(--color-border)}.campaign-slider{position:relative;overflow:hidden;margin:0;-webkit-user-select:none;user-select:none}.campaign-slides{display:flex;transition:transform .4s cubic-bezier(.4,0,.2,1);width:100%}.campaign-slide{min-width:100%;display:flex;align-items:center;gap:14px;padding:18px 52px 18px 20px;color:#fff;min-height:110px}.campaign-slide-emoji{font-size:36px;flex-shrink:0;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.campaign-slide-body{display:flex;flex-direction:column;gap:2px;min-width:0}.campaign-slide-type{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;opacity:.85}.campaign-slide-name{font-size:17px;font-weight:800;letter-spacing:-.3px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.campaign-slide-desc{font-size:13px;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slider-arrow{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff40;border:none;color:#fff;font-size:24px;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;line-height:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .2s;z-index:2}.slider-arrow:hover{background:#fff6}.slider-arrow--prev{left:8px}.slider-arrow--next{right:8px}.slider-dots{position:absolute;bottom:8px;left:50%;transform:translate(-50%);display:flex;gap:6px;z-index:2}.slider-dot{width:6px;height:6px;border-radius:50%;background:#ffffff80;border:none;padding:0;cursor:pointer;transition:background .2s,width .2s}.slider-dot--active{background:#fff;width:18px;border-radius:3px}.campaign-slide--clickable{cursor:pointer}.campaign-slide--clickable:active{opacity:.9;transform:scale(.99)}.campaign-slide--info{cursor:default}.campaign-slide--loading{opacity:.85;pointer-events:none}.campaign-slide-cta{position:absolute;right:52px;top:50%;transform:translateY(-50%);width:32px;height:32px;background:#ffffff4d;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);flex-shrink:0;transition:background .2s,transform .15s}.campaign-slide--added .campaign-slide-cta{background:#ffffff8c}.campaign-slide--added{animation:slideAddedFlash 1.4s ease forwards}@keyframes slideAddedFlash{0%{filter:brightness(1.25)}30%{filter:brightness(1.12)}to{filter:brightness(1)}}.campaign-slide-added-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:#fff;background:#00000047;border-radius:inherit;letter-spacing:.3px;animation:addedOverlayIn .18s ease;pointer-events:none}@keyframes addedOverlayIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.today-deal-card{display:flex;align-items:center;gap:16px;margin:0 16px;padding:20px;background:#fff;border:2px solid #f97316;border-radius:16px;box-shadow:0 2px 16px #f973161f}.today-deal-left{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}.today-deal-campaign-name{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#f97316;margin:0}.today-deal-product-name{font-size:15px;font-weight:700;color:var(--color-text);margin:0;line-height:1.35}.today-deal-badge{display:inline-flex;align-items:center;background:#fff7ed;color:#c2410c;font-size:12px;font-weight:700;padding:3px 10px;border-radius:20px;border:1px solid #fed7aa;align-self:flex-start}.today-deal-cta{margin-top:6px;background:#f97316!important;color:#fff!important;font-weight:700;font-size:13px;padding:10px 16px;border-radius:10px;border:none;cursor:pointer;align-self:flex-start;white-space:nowrap}.today-deal-cta:active{background:#ea6a0a!important}.today-deal-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.today-deal-old-price{font-size:13px;color:var(--color-text-secondary);text-decoration:line-through;margin:0}.today-deal-new-price{font-size:26px;font-weight:800;color:#f97316;margin:0;white-space:nowrap;line-height:1.1}.today-deal-new-price-unit{font-size:14px;font-weight:600}.cart-badge--pulse{animation:badgePulse .55s cubic-bezier(.36,.07,.19,.97)}@keyframes badgePulse{0%{transform:scale(1)}25%{transform:scale(1.55)}55%{transform:scale(.88)}80%{transform:scale(1.18)}to{transform:scale(1)}}.toast-stack{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:9999;pointer-events:none;width:max-content;max-width:calc(100vw - 32px)}.app-toast{pointer-events:auto;display:flex;align-items:center;gap:8px;background:#1e1e1ef0;color:#fff;font-size:13.5px;font-weight:500;padding:10px 14px;border-radius:24px;box-shadow:0 4px 20px #00000047;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:toastSlideUp .22s ease;white-space:nowrap}.app-toast--leaving{animation:toastSlideDown .28s ease forwards}@keyframes toastSlideUp{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastSlideDown{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(8px) scale(.95)}}.app-toast__msg{flex:1}.app-toast__action{flex-shrink:0;background:#ffffff2e;border:none;color:#fff;font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:12px;cursor:pointer;transition:background .15s;white-space:nowrap}.app-toast__action:active{background:#ffffff4d}.app-toast__close{flex-shrink:0;background:none;border:none;color:#fff9;font-size:16px;line-height:1;padding:0 2px;cursor:pointer;transition:color .15s}.app-toast__close:hover{color:#fff}.home-section{padding:20px 16px 0}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-title{font-size:16px;font-weight:700;color:var(--color-text)}.categories-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.category-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px 8px;background:var(--color-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:2px solid transparent;transition:border-color .15s,box-shadow .15s;text-align:center}.category-card:active{box-shadow:var(--shadow-md)}.category-card--featured{background:var(--color-featured);border-color:var(--color-primary)}.category-card-name{font-size:18px;font-weight:600;color:var(--color-text);line-height:1.3}.other-categories-wrap{margin-top:12px}.other-categories-btn{font-size:16px}.other-categories-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease;overflow:hidden}.other-categories-panel--open{grid-template-rows:1fr}.other-categories-grid{min-height:0;padding-top:10px}.products-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.product-card{background:var(--color-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column;border:1.5px solid transparent;transition:box-shadow .15s}.product-card--featured{border-color:var(--color-primary)}.product-card-link{flex:1;display:block}.product-card-body{padding:12px 12px 8px}.product-card-name{font-size:13px;font-weight:600;color:var(--color-text);line-height:1.35;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-card-subcategory{font-size:11px;color:var(--color-text-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.3px}.discount-badge{display:inline-block;background:#fee2e2;color:var(--color-danger);font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;margin-bottom:6px}.product-card-price{font-size:18px;font-weight:800;color:var(--color-primary);margin-bottom:4px;letter-spacing:-.3px}.product-card-stock{font-size:11px;color:var(--color-success);font-weight:600}.product-card-stock.low-stock{color:var(--color-warning)}.product-card-stock.out-of-stock{color:var(--color-danger)}.product-card-actions{padding:0 10px 10px}.page-header{padding:20px 16px 12px}.page-title{font-size:20px;font-weight:800}.page-subtitle{font-size:13px;color:var(--color-text-muted);margin-top:2px}.category-page{padding:0}.category-page .products-grid{padding:0 16px}.product-detail-page{padding:16px;max-width:600px;margin:0 auto}.product-detail-card{background:var(--color-card);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm)}.product-detail-name{font-size:20px;font-weight:800;line-height:1.3;margin-bottom:6px}.product-detail-subcategory{font-size:13px;color:var(--color-text-muted);margin-bottom:16px;text-transform:uppercase;letter-spacing:.3px}.product-detail-price{font-size:28px;font-weight:800;color:var(--color-primary);margin-bottom:6px}.product-detail-pricing-label{font-size:12px;color:var(--color-text-muted);margin-bottom:16px}.product-detail-stock{font-size:14px;font-weight:600;color:var(--color-success);margin-bottom:16px}.product-detail-description{font-size:14px;color:var(--color-text-muted);line-height:1.6;margin-bottom:20px}.product-detail-divider{border:none;border-top:1px solid var(--color-border);margin:16px 0}.qty-control{display:flex;align-items:center;gap:0;border:1.5px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;width:fit-content}.qty-btn{width:44px;height:44px;border:none;background:var(--color-bg);font-size:20px;font-weight:600;color:var(--color-primary);display:flex;align-items:center;justify-content:center;transition:background .15s}.qty-btn:active{background:var(--color-primary-light)}.qty-btn:disabled{color:var(--color-text-muted);cursor:not-allowed}.qty-display{width:52px;text-align:center;font-size:18px;font-weight:700;border:none;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);background:var(--color-white);height:44px;display:flex;align-items:center;justify-content:center}.cart-page{padding:16px;max-width:600px;margin:0 auto}.cart-empty{text-align:center;padding:60px 20px;color:var(--color-text-muted)}.cart-empty-icon{font-size:56px;margin-bottom:12px}.cart-empty-text{font-size:16px;margin-bottom:20px}.cart-items-list{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.cart-item{background:var(--color-card);border-radius:var(--radius-md);padding:14px;box-shadow:var(--shadow-sm);display:flex;align-items:flex-start;gap:12px}.cart-item-info{flex:1;min-width:0}.cart-item-name{font-size:14px;font-weight:600;line-height:1.3;margin-bottom:4px}.cart-item-subcategory{font-size:12px;color:var(--color-text-muted);margin-bottom:8px}.cart-item-unit-price{font-size:12px;color:var(--color-text-muted)}.cart-item-total{font-size:16px;font-weight:800;color:var(--color-primary);white-space:nowrap}.cart-item-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.cart-item-remove{background:none;border:none;color:var(--color-danger);font-size:18px;padding:2px;cursor:pointer}.order-summary{background:var(--color-card);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-sm);margin-bottom:16px}.order-summary-title{font-size:15px;font-weight:700;margin-bottom:12px}.order-summary-row{display:flex;justify-content:space-between;font-size:14px;padding:4px 0;color:var(--color-text-muted)}.order-summary-row.total-row{font-size:17px;font-weight:800;color:var(--color-text);border-top:1.5px solid var(--color-border);margin-top:8px;padding-top:10px}.order-summary-row.free-delivery{color:var(--color-success);font-weight:600}.campaign-discount-row{color:var(--color-success)!important;align-items:flex-start;gap:4px}.campaign-discount-label{display:flex;flex-direction:column;gap:2px}.campaign-discount-badge{font-size:11px;font-weight:600;background:#dcfce7;color:#15803d;border-radius:4px;padding:1px 6px;display:inline-block;width:fit-content}.campaign-discount-amount{font-weight:700;white-space:nowrap;color:var(--color-success)}.order-page{padding:16px;max-width:600px;margin:0 auto}.order-form-card{background:var(--color-card);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm);margin-bottom:16px}.order-form-title{font-size:15px;font-weight:700;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--color-border)}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--color-text);color:var(--color-white);padding:12px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:600;z-index:999;box-shadow:var(--shadow-md);animation:slideUp .25s ease}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 20px;color:var(--color-text-muted);font-size:14px}.spinner-circle{width:36px;height:36px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-md);padding:16px;margin:16px;text-align:center}.error-message p{font-size:14px;color:var(--color-danger);margin-bottom:10px}.empty-message{text-align:center;color:var(--color-text-muted);padding:40px 20px;font-size:14px}.info-banner{background:var(--color-primary-light);border-left:3px solid var(--color-primary);padding:12px 14px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:12px 16px;font-size:13px;color:var(--color-primary-dark)}.divider{border:none;border-top:1px solid var(--color-border);margin:12px 0}@media (max-width: 479px){.app-header{flex-wrap:wrap;height:auto;padding:10px 14px 8px;row-gap:0;column-gap:8px}.header-brand{order:1;flex:1}.header-cart-btn{order:2;flex-shrink:0}.header-nav{order:3;flex:none;max-width:none;width:100%;padding-bottom:4px}.header-logo{height:34px}.header-title{font-size:14px}.header-subtitle{font-size:10px}}@media (min-width: 640px){.home-search{padding:14px 24px}.campaign-slide{min-height:130px;padding:20px 60px 20px 28px}.campaign-slide-emoji{font-size:42px}.campaign-slide-name{font-size:20px}.home-section{padding:24px 24px 0}.categories-grid{grid-template-columns:repeat(3,1fr);gap:14px}.category-card{min-height:68px;padding:14px 10px}.category-card-name{font-size:14px}.products-grid{grid-template-columns:repeat(3,1fr);gap:14px}.cart-page,.order-page,.product-detail-page{padding:24px}}.my-orders-page{padding:16px 0 32px;max-width:var(--max-width);margin:0 auto}.my-orders-page .page-title{padding:0 16px;margin-bottom:16px}.my-orders-phone-bar{display:flex;align-items:center;gap:10px;padding:0 16px 12px;font-size:14px;color:var(--color-text-muted)}.my-orders-loading{font-size:12px;color:var(--color-text-muted);animation:pulse 1.2s ease-in-out infinite}.orders-list{display:flex;flex-direction:column;gap:14px;padding:0 16px}.order-history-card{background:var(--color-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.order-history-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 10px}.order-history-no{font-size:15px;font-weight:700;color:var(--color-text)}.order-history-date{font-size:12px;color:var(--color-text-muted);margin-top:2px}.status-badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;flex-shrink:0}.order-history-desc{padding:0 16px 10px;font-size:13px;color:var(--color-text-muted)}.order-history-items{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding:10px 16px;display:flex;flex-direction:column;gap:6px}.order-history-item{display:flex;justify-content:space-between;font-size:13px;color:var(--color-text)}.order-history-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px}.order-history-payment{font-size:12px;color:var(--color-text-muted);margin-bottom:2px}.order-history-total{font-size:14px;color:var(--color-text)}
