:root{--bg: oklch(98% .004 70);--surface: oklch(100% 0 0);--text: oklch(18% .01 50);--text-muted: oklch(52% .01 50);--border: oklch(90% .006 70);--dark: oklch(20% .015 50);--dark-hover: oklch(14% .012 50);--accent: oklch(65% .14 75);--accent-hover: oklch(58% .14 75);--accent-soft: oklch(65% .14 75 / .12);--shadow-card: 0 2px 10px oklch(20% .015 50 / .06);--shadow-float: 0 12px 28px oklch(20% .015 50 / .18);font-family:Figtree,system-ui,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;height:100vh;height:100dvh;overflow:hidden;background:var(--bg);color:var(--text)}#root{height:100%;display:flex;flex-direction:column}a{color:var(--dark);text-decoration:none}a:hover{color:var(--dark-hover);text-decoration:underline}h1,h2,h3{margin:0;font-weight:600}.serif{font-family:Domine,Georgia,serif;font-weight:600}.screen{width:100%;max-width:430px;height:100%;margin:0 auto;background:var(--bg);display:flex;flex-direction:column;overflow:hidden}.screen-header{flex-shrink:0;padding:24px 22px 14px}.screen-header .back{color:var(--text);display:inline-flex}.screen-header .back:hover{color:var(--text-muted)}.screen-title{font-size:26px;margin-top:12px}.screen-subtitle{font-size:12.5px;color:var(--text-muted);margin-top:2px}.scroll-area{flex:1;overflow-y:auto}.section-title{font-size:21px;padding:22px 22px 6px}.btn{width:100%;height:52px;border-radius:16px;border:none;font-family:Figtree,sans-serif;font-weight:700;font-size:14.5px;cursor:pointer}.btn-dark{background:var(--dark);color:var(--bg);box-shadow:0 8px 20px #1c141038}.btn-dark:hover{background:var(--dark-hover)}.btn-dark:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-bar{display:flex;align-items:center;justify-content:space-between;padding:0 18px}.add-btn{flex-shrink:0;width:32px;height:32px;border-radius:999px;border:none;background:var(--dark);color:var(--bg);font-weight:700;font-size:18px;line-height:1;cursor:pointer}.add-btn:hover{background:var(--dark-hover)}.category-pills{display:flex;gap:8px;padding:14px 22px 16px;overflow-x:auto;scrollbar-width:none}.category-pills::-webkit-scrollbar{display:none}.category-pill{flex-shrink:0;padding:9px 16px;border-radius:999px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);font-weight:700;font-size:13px;cursor:pointer;white-space:nowrap}.category-pill.selected{background:var(--accent);border-color:var(--accent);color:var(--bg)}.product-card{display:flex;align-items:center;gap:14px;margin:0 22px 12px;padding:12px;border-radius:18px;background:var(--surface);box-shadow:var(--shadow-card)}.product-thumb{width:68px;height:68px;border-radius:14px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.product-add-btn{flex-shrink:0;width:36px;height:36px;border-radius:999px;border:none;background:var(--accent);color:var(--bg);font-weight:700;font-size:20px;line-height:1;cursor:pointer;box-shadow:0 4px 10px #bf810059;box-shadow:0 4px 10px oklch(65% .14 75 / .35)}.product-add-btn:hover{background:var(--accent-hover)}.floating-cart-bar{flex-shrink:0;margin:0 16px 16px}.floating-cart-bar .btn-dark{border-radius:999px;box-shadow:var(--shadow-float)}.restaurant-card-v2{display:block;margin:0 22px 18px;border-radius:20px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow-card);color:var(--text)}.restaurant-banner{position:relative;height:110px;display:flex;align-items:center;justify-content:center}.restaurant-banner img{width:100%;height:100%;object-fit:cover}.restaurant-avatar-letter{font-family:Domine,Georgia,serif;font-weight:700;font-size:42px;color:var(--dark)}.restaurant-status-badge{position:absolute;top:10px;right:10px;font-size:10.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:4px 9px;border-radius:999px;color:#fff}.restaurant-status-badge.open{background:#4aa651d9}.restaurant-status-badge.closed{background:#3f3936bf}.restaurant-card-body{padding:14px 16px 16px}.restaurant-card-name{font-family:Domine,Georgia,serif;font-weight:700;font-size:19px}.restaurant-card-address{font-size:12.5px;color:var(--text-muted);margin-top:4px}.restaurant-card-hours{font-size:12px;color:var(--text-muted);margin-top:6px;font-weight:600}.address-bar-wrap{position:relative;margin:0 22px 20px}.address-bar{display:flex;align-items:center;gap:8px;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:10px 14px;color:var(--text);text-decoration:none;cursor:pointer;box-shadow:var(--shadow-card)}.address-bar-text{display:flex;flex-direction:column;flex:1;min-width:0;text-align:left}.address-bar-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.address-bar-value{font-size:13.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.address-bar-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-float);z-index:20;overflow:hidden}.address-bar-item{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:12px 14px;border:none;background:none;border-bottom:1px solid var(--border);text-align:left;color:var(--text);text-decoration:none;cursor:pointer;font:inherit}.address-bar-item:last-child{border-bottom:none}.address-bar-item.selected{background:var(--accent-soft)}.address-bar-add{color:var(--accent);font-weight:700;font-size:13px;justify-content:center}.home-section{margin:4px 0 20px}.home-section-title{font-family:Domine,Georgia,serif;font-weight:700;font-size:16px;margin:0 22px 10px}.home-scroll{display:flex;gap:12px;overflow-x:auto;padding:0 22px 4px}.offer-card{flex-shrink:0;width:160px;border-radius:16px;background:var(--dark);color:var(--bg);padding:14px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow-card);text-decoration:none}.offer-card-tag{font-size:10px;font-weight:800;letter-spacing:.05em;color:var(--accent);text-transform:uppercase}.offer-card-name{font-weight:700;font-size:13.5px;line-height:1.3}.offer-card-restaurant{font-size:11px;color:#fff9}.offer-card-price{font-weight:800;font-size:15px;color:var(--accent);margin-top:4px}.popular-card{flex-shrink:0;width:130px;border-radius:16px;background:var(--surface);box-shadow:var(--shadow-card);padding:10px;color:var(--text);text-decoration:none}.popular-card-thumb{width:100%;height:70px;border-radius:12px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;color:var(--text-muted);margin-bottom:8px}.popular-card-name{font-weight:700;font-size:12.5px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.popular-card-restaurant{font-size:10.5px;color:var(--text-muted);margin-top:3px}.popular-card-price{font-weight:800;font-size:12.5px;color:var(--accent);margin-top:4px}.stepper-btn{width:26px;height:26px;border-radius:999px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);font-weight:700;font-size:14px;line-height:1;cursor:pointer}.stepper-btn.dark{background:var(--dark);border-color:var(--dark);color:var(--bg)}.row{display:flex;align-items:center;gap:14px;padding:15px 22px;border-bottom:1px solid var(--border)}.thumb{width:60px;height:60px;border-radius:14px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.thumb.sm{width:48px;height:48px;border-radius:12px}.item-name{font-weight:700;font-size:14.5px;color:var(--text)}.item-desc{font-size:12px;color:var(--text-muted);line-height:1.4;margin-top:2px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.item-price{font-weight:700;font-size:13.5px;color:var(--accent);margin-top:3px}.item-unit{font-size:12px;color:var(--text-muted);margin-top:2px}.bottom-bar{flex-shrink:0;padding:14px 20px;background:var(--surface);border-top:1px solid var(--border)}.field{margin:0 22px 16px}label,.label{display:block;font-weight:700;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}input,textarea,select{width:100%;box-sizing:border-box;border-radius:12px;border:1.5px solid var(--border);background:var(--surface);padding:12px 14px;font-family:Figtree,sans-serif;font-size:13.5px;color:var(--text)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--dark)}textarea{resize:none;height:64px}.payment-options{display:flex;gap:10px}.payment-option{flex:1;height:44px;border-radius:12px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);font-family:Figtree,sans-serif;font-weight:600;font-size:13px;cursor:pointer}.payment-option.selected{background:var(--dark);border-color:var(--dark);color:var(--bg)}.address-option{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;border:1.5px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:var(--surface);color:var(--text);cursor:pointer;font-family:Figtree,sans-serif}.address-option-static{cursor:default}.address-option-label{font-weight:700;font-size:13.5px}.address-option-line{font-size:12.5px;color:var(--text-muted);margin-top:2px}.address-select{position:relative}.address-select-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;background:var(--surface);border:1.5px solid var(--border);border-radius:12px;box-shadow:0 10px 24px #1c141024;overflow-y:auto;max-height:260px}.address-select-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:12px 14px;background:var(--surface);border:none;border-bottom:1px solid var(--border);cursor:pointer;font-family:Figtree,sans-serif;color:var(--text)}.address-select-item:last-child{border-bottom:none}.address-select-item:hover{background:var(--bg)}.address-select-item.selected{background:#1c14100d}.summary-card{margin:0 22px 22px;border:1px solid var(--border);border-radius:14px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center}.summary-row{display:flex;justify-content:space-between;font-size:13.5px;color:var(--text-muted)}.summary-total{display:flex;justify-content:space-between;font-weight:800;font-size:16px}.divider{height:1px;background:var(--border);margin:4px 0}.error-text{color:var(--accent);font-size:13px;margin:0 22px 12px}.empty-state{padding:32px 22px;text-align:center;color:var(--text-muted)}.active-order-banners{display:flex;flex-direction:column;gap:10px;margin:18px 22px 20px}.active-order-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:14px;background:var(--dark);color:var(--bg);box-shadow:0 8px 20px #1c141038}.active-order-banner:hover{background:var(--dark-hover);color:var(--bg);text-decoration:none}.active-order-banner-title{font-weight:700;font-size:13.5px}.active-order-banner-status{font-size:12px;color:#faf8f6a6;margin-top:2px}.status-tracker{padding:22px 22px 4px}.status-step{display:flex;gap:14px}.status-step-line{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.status-step-icon{position:relative;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .25s,color .25s}.status-step-connector{width:2px;flex:1;min-height:24px;background:var(--border);margin:2px 0}.status-step-text{padding-bottom:26px;padding-top:7px}.status-step-label{font-weight:700;font-size:14px;color:var(--text-muted)}.status-step-desc{font-size:12.5px;color:var(--text-muted);margin-top:3px;line-height:1.4}.status-step-done .status-step-icon{background:var(--dark);color:var(--bg)}.status-step-done .status-step-connector{background:var(--dark)}.status-step-done .status-step-label{color:var(--text)}.status-step-active .status-step-icon{background:var(--accent);color:var(--bg)}.status-step-active .status-step-icon:before{content:"";position:absolute;inset:-5px;border-radius:50%;border:2.5px solid oklch(55% .1 45 / .2);border-top-color:var(--accent);animation:status-spin .9s linear infinite}.status-step-active .status-step-label{color:var(--text)}.status-step-upcoming .status-step-icon{background:var(--surface);border:1.5px solid var(--border);color:var(--text-muted)}@keyframes status-spin{to{transform:rotate(360deg)}}.promo-savings-row{color:var(--accent);font-weight:700}.promo-badge{position:absolute;top:6px;left:6px;background:var(--accent);color:var(--bg);font-weight:800;font-size:10.5px;letter-spacing:.02em;padding:3px 7px;border-radius:999px;box-shadow:0 2px 6px #bf810066;box-shadow:0 2px 6px oklch(65% .14 75 / .4)}.item-price-original{font-size:12px;color:var(--text-muted);text-decoration:line-through;margin-right:6px}.combo-section{margin:4px 0 14px}.combo-scroll{display:flex;gap:12px;overflow-x:auto;padding:0 22px 4px}.combo-card{flex-shrink:0;width:210px;border-radius:16px;background:var(--dark);color:var(--bg);padding:14px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow-card)}.combo-card-name{font-weight:700;font-size:14px}.combo-card-items{font-size:11.5px;color:#ffffffa6;line-height:1.4;flex:1}.combo-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:4px}.combo-card-price{font-weight:800;font-size:15px;color:var(--accent)}.combo-card-add{border:none;background:var(--accent);color:var(--bg);font-weight:700;font-size:12px;padding:6px 12px;border-radius:999px;cursor:pointer}.combo-card-add:hover{background:var(--accent-hover)}.order-discount-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 22px 14px;padding:14px 16px;border-radius:14px;background:var(--dark);color:var(--bg);box-shadow:0 8px 20px #1c141038}.order-discount-banner-name{font-weight:700;font-size:13.5px}.order-discount-banner-desc{font-size:11.5px;color:#ffffffa6;margin-top:2px}.order-discount-banner-value{font-weight:800;font-size:18px;color:var(--accent);flex-shrink:0}.bottom-nav{flex-shrink:0;display:flex;border-top:1px solid var(--border);background:var(--surface);padding:8px 8px calc(6px + env(safe-area-inset-bottom))}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;color:var(--text-muted);font-size:10.5px;font-weight:700;text-decoration:none;border-radius:12px}.bottom-nav-item:hover{color:var(--text-muted);text-decoration:none}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-item.disabled{opacity:.35}.bottom-nav-icon-wrap{position:relative}.bottom-nav-badge{position:absolute;top:-4px;right:-8px;background:var(--accent);color:var(--bg);font-size:9px;font-weight:800;min-width:15px;height:15px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 3px}.skeleton{background:var(--border);animation:skeleton-pulse 1.4s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}
