.f3d-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172aa6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px;animation:f3dFadeIn .25s cubic-bezier(.16,1,.3,1)}.f3d-modal-shell.f3d-clean-product-modal{width:95%;max-width:1040px;max-height:88vh;background:#fff;border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 25px 50px -12px #0f172a40,0 0 30px #00000014;display:flex;flex-direction:column;overflow:hidden;position:relative;color:#0f172a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;animation:f3dSlideUp .3s cubic-bezier(.16,1,.3,1)}@keyframes f3dSlideUp{0%{transform:translateY(20px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.f3d-clean-close-btn{position:absolute;top:14px;right:14px;z-index:20;width:36px;height:36px;border-radius:50%;background:#fff;border:1px solid #cbd5e1;color:#475569;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 10px #00000024;transition:all .2s ease}.f3d-clean-close-btn:hover{background:#fee2e2;border-color:#ef4444;color:#ef4444;transform:scale(1.08)}.f3d-product-layout{display:grid;grid-template-columns:480px 1fr;flex:1;overflow-y:auto;min-height:0;background:#fff}.f3d-product-media{position:relative;background:#090d16;border-right:1px solid #f1f5f9;overflow:hidden;display:flex;flex-direction:column}.f3d-img-container{position:relative;width:100%;height:100%;min-height:480px;background:#090d16;overflow:hidden;cursor:zoom-in}.f3d-product-img{width:100%;height:100%;object-fit:cover;object-position:center 38%;display:block;transform:scale(1.1);transform-origin:center center;transition:transform .4s cubic-bezier(.16,1,.3,1)}.f3d-img-container:hover .f3d-product-img{transform:scale(1.18)}.f3d-badge-tag{position:absolute;top:14px;left:14px;background:linear-gradient(135deg,#ea580c,#c2410c);color:#fff;font-size:11px;font-weight:800;padding:4px 10px;border-radius:6px;letter-spacing:.4px;box-shadow:0 4px 12px #ea580c59;z-index:5}.f3d-zoom-hint-btn{position:absolute;bottom:14px;right:14px;z-index:10;background:#0f172ac7;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;border:1px solid rgba(255,255,255,.28);border-radius:20px;padding:6px 14px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:6px;cursor:pointer;box-shadow:0 4px 12px #00000059;transition:all .2s ease}.f3d-zoom-hint-btn:hover{background:#0f172af2;border-color:#ffffff80;transform:scale(1.05)}.f3d-zoom-hint-btn:active{transform:scale(.96)}.f3d-lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10005;background:#000000f0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:20px;animation:f3dFadeIn .2s ease-out}.f3d-lightbox-overlay.closing{opacity:0;transition:opacity .2s ease}.f3d-lightbox-content{position:relative;display:flex;flex-direction:column;align-items:center;max-width:96vw;max-height:90vh}.f3d-lightbox-img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:12px;box-shadow:0 16px 40px #000000b3;animation:f3dZoomIn .25s cubic-bezier(.16,1,.3,1)}.f3d-lightbox-caption{margin-top:14px;color:#f1f5f9;font-size:14px;font-weight:600;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,.5)}.f3d-lightbox-close{position:absolute;top:18px;right:18px;z-index:10006;width:44px;height:44px;border-radius:50%;background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.35);font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.f3d-lightbox-close:hover{background:#ffffff59;transform:scale(1.08)}@keyframes f3dFadeIn{0%{opacity:0}to{opacity:1}}@keyframes f3dZoomIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.f3d-product-content{padding:24px 26px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;background:#fff}.f3d-header-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.f3d-cat-badge{background:#e0f2fe;color:#0284c7;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:6px}.f3d-rating-row{display:flex;align-items:center;gap:5px;font-size:12.5px}.f3d-star-rating{color:#f59e0b;font-weight:800}.f3d-review-count{color:#64748b;font-size:12px}.f3d-prep-badge,.f3d-hot-badge{background:#f1f5f9;color:#475569;font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px;border:1px solid #e2e8f0}.f3d-title-group{display:flex;flex-direction:column;gap:6px}.f3d-dish-title{font-size:22px;font-weight:800;color:#0f172a;line-height:1.35;margin:0}.f3d-dish-sub{font-size:13.5px;color:#475569;line-height:1.5;margin:0}.f3d-price-box{background:#fff7ed;border:1px solid #ffedd5;border-radius:12px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.f3d-price-main{display:flex;align-items:baseline;gap:8px}.f3d-price-current{font-size:24px;font-weight:800;color:#ea580c}.f3d-price-original{font-size:13.5px;color:#94a3b8;text-decoration:line-through}.f3d-price-discount{background:#ef4444;color:#fff;font-size:11px;font-weight:800;padding:2px 6px;border-radius:5px}.f3d-freeship-badge{font-size:12px;color:#16a34a;font-weight:700}.f3d-nutrition-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.f3d-nut-pill{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:8px 6px;text-align:center;display:flex;flex-direction:column;gap:2px}.f3d-nut-label{font-size:10.5px;color:#64748b}.f3d-nut-value{font-size:13px;font-weight:700;color:#0f172a}.f3d-chef-card{background:#fffbeb;border:1px solid #fef3c7;border-radius:12px;padding:11px 14px;display:flex;gap:10px;font-size:12.5px;line-height:1.5;color:#92400e;align-items:flex-start}.f3d-chef-icon{font-size:18px;flex-shrink:0}.f3d-desc-box{font-size:13.5px;line-height:1.6;color:#334155}.f3d-desc-title{font-size:12px;font-weight:800;color:#0f172a;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.f3d-desc-text{margin:0}.f3d-toppings-section{display:flex;flex-direction:column;gap:10px}.f3d-toppings-header{display:flex;align-items:center;justify-content:space-between;font-size:13.5px;font-weight:700;color:#0f172a}.f3d-optional-tag{font-size:11px;color:#64748b;font-weight:400;background:#f1f5f9;padding:2px 8px;border-radius:99px;border:1px solid #e2e8f0}.f3d-toppings-list{display:flex;flex-direction:column;gap:8px}.f3d-topping-item{display:flex;align-items:center;gap:12px;padding:9px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.f3d-topping-item:hover{border-color:#38bdf8;background:#f0f9ff}.f3d-topping-item.selected{border-color:#0284c7;background:#e0f2fe}.f3d-topping-checkbox{width:18px;height:18px;accent-color:#0284c7;cursor:pointer}.f3d-topping-info{flex:1;min-width:0}.f3d-topping-name{font-size:13px;font-weight:600;color:#0f172a}.f3d-topping-desc{font-size:11px;color:#64748b;margin-top:1px}.f3d-topping-price{font-size:13px;font-weight:700;color:#0284c7}.f3d-footer-action-bar{background:#fff;border-top:1px solid #e2e8f0;box-shadow:0 -4px 16px #0000000d;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-shrink:0}.f3d-footer-calc{display:flex;align-items:center;gap:16px}.f3d-qty-control{display:flex;align-items:center;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:10px;overflow:hidden}.f3d-qty-btn{width:36px;height:36px;background:transparent;border:none;color:#0f172a;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.f3d-qty-btn:hover{background:#e2e8f0}.f3d-qty-value{min-width:32px;text-align:center;font-size:14px;font-weight:700;color:#0f172a}.f3d-total-wrap{display:flex;flex-direction:column}.f3d-total-hint{font-size:11px;color:#64748b}.f3d-total-price{font-size:19px;font-weight:800;color:#ea580c}.f3d-footer-btns{display:flex;align-items:center;gap:10px;flex:1;max-width:440px;justify-content:flex-end}.f3d-btn-add-cart{flex:1;padding:11px 16px;background:#f0fdf4;border:1.5px solid #16a34a;color:#15803d;border-radius:12px;font-size:13.5px;font-weight:700;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.f3d-btn-add-cart:hover{background:#dcfce7;transform:translateY(-1px)}.f3d-btn-buy-now{flex:1.2;padding:11px 18px;background:linear-gradient(135deg,#ea580c,#c2410c);border:none;color:#fff;border-radius:12px;font-size:13.5px;font-weight:700;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:6px;box-shadow:0 4px 14px #ea580c59;white-space:nowrap}.f3d-btn-buy-now:hover{transform:translateY(-1px);box-shadow:0 6px 20px #ea580c73}@media (max-width: 1024px) and (min-width: 641px){.f3d-modal-shell.f3d-clean-product-modal{width:94%;max-width:92vw}.f3d-product-layout{grid-template-columns:420px 1fr}}@media (max-width: 640px){.f3d-modal-overlay{padding:0;align-items:flex-end}.f3d-modal-shell.f3d-clean-product-modal{max-width:100%;max-height:92vh;border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none;animation:f3dSheetSlideUp .3s cubic-bezier(.16,1,.3,1)}@keyframes f3dSheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.f3d-product-layout{grid-template-columns:1fr;display:flex;flex-direction:column}.f3d-product-media{border-right:none;border-bottom:1px solid #f1f5f9;flex-shrink:0}.f3d-img-container{height:350px;min-height:350px;max-height:48vh;background:#090d16;overflow:hidden}.f3d-product-img{width:100%;height:100%;object-fit:cover;object-position:center 48%;transform:scale(1.22);transform-origin:center center}.f3d-badge-tag{top:14px;left:14px;font-size:11.5px;padding:5px 12px}.f3d-clean-close-btn{top:14px;right:14px;width:36px;height:36px;z-index:30;background:#ffffffeb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 4px 14px #00000047}.f3d-product-content{padding:16px;gap:14px}.f3d-dish-title{font-size:18.5px}.f3d-price-current{font-size:21px}.f3d-nutrition-row{grid-template-columns:repeat(4,1fr);gap:6px}.f3d-nut-pill{padding:6px 4px}.f3d-nut-label{font-size:9.5px}.f3d-nut-value{font-size:11.5px}.f3d-footer-action-bar{padding:12px 16px;flex-direction:column;gap:10px;padding-bottom:max(16px,env(safe-area-inset-bottom,16px))}.f3d-footer-calc{width:100%;justify-content:space-between}.f3d-footer-btns{width:100%;max-width:100%}.f3d-btn-add-cart,.f3d-btn-buy-now{padding:12px 10px;font-size:13px}}.tcmap-3d-food-section{margin-top:24px;background:var(--ec-surface, #ffffff);border-radius:var(--ec-radius-lg, 16px);border:1px solid var(--ec-divider, #e2e8f0);box-shadow:var(--ec-shadow-sm, 0 2px 8px rgba(0, 0, 0, .04));padding:18px 20px 22px;overflow:hidden}.tcmap-3d-food-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--ec-divider, #e2e8f0);flex-wrap:wrap;gap:12px}.f3d-header-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:700;border-radius:99px;background:var(--ec-primary, #0284c7);color:#fff;border:none;cursor:pointer;box-shadow:0 2px 8px #0284c740;transition:all .2s ease}.f3d-header-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px #0284c759;filter:brightness(1.08)}.f3d-header-btn:active{transform:scale(.97)}.tcmap-3d-header-left{display:flex;align-items:center;gap:12px}.tcmap-3d-logo-badge{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#e0f2fe,#bae6fd);border:1.5px solid #0284c7;color:#0284c7;flex-shrink:0;display:flex;align-items:center;justify-content:center}.tcmap-3d-header-title{font-size:17px;font-weight:800;color:var(--ec-text-primary, #0f172a);line-height:1.3}.tcmap-3d-header-sub{font-size:12px;color:var(--ec-text-tertiary, #64748b);margin-top:2px}.tcmap-3d-food-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;width:100%}@media (max-width: 1200px){.tcmap-3d-food-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width: 860px){.tcmap-3d-food-grid{grid-template-columns:repeat(3,1fr);gap:10px}}@media (max-width: 600px){.tcmap-3d-food-grid{grid-template-columns:repeat(2,1fr);gap:8px}}.tcmap-3d-food-card{background:var(--ec-surface-muted, #f8fafc);border:1px solid var(--ec-divider, #e2e8f0);border-radius:var(--ec-radius-md, 12px);overflow:hidden;cursor:pointer;transition:all .22s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;position:relative}.tcmap-3d-food-card:hover{transform:translateY(-4px);border-color:#0284c7;box-shadow:0 10px 24px #0284c729}.tcmap-3d-card-thumb-wrap{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;background:#f1f5f9}.tcmap-3d-card-thumb{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}.tcmap-3d-food-card:hover .tcmap-3d-card-thumb{transform:scale(1.06)}.tcmap-3d-floating-tag{position:absolute;top:8px;left:8px;z-index:2;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;font-size:10px;font-weight:800;padding:3px 7px;border-radius:6px;letter-spacing:.3px;box-shadow:0 2px 6px #00000040}.tcmap-3d-hover-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease;z-index:3}.tcmap-3d-food-card:hover .tcmap-3d-hover-overlay{opacity:1}.tcmap-3d-inspect-btn{background:#0284c7;color:#fff;font-size:11px;font-weight:700;padding:6px 12px;border-radius:99px;box-shadow:0 4px 12px #0284c766;transform:translateY(4px);transition:transform .2s ease}.tcmap-3d-food-card:hover .tcmap-3d-inspect-btn{transform:translateY(0)}.tcmap-3d-card-info{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px;flex:1;background:var(--ec-surface, #ffffff)}.tcmap-3d-card-name{font-size:13px;font-weight:700;color:var(--ec-text-primary, #0f172a);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:35px}.tcmap-3d-card-price-row{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:auto}.tcmap-3d-card-price{font-size:14px;font-weight:800;color:#ee4d2d}.tcmap-3d-card-badge{font-size:11px;color:#64748b;font-weight:600;background:#f1f5f9;padding:2px 6px;border-radius:4px}
