@use '../../../styles/variables' as *; // ─── Page Shell ─── .hp { min-height: 100vh; padding: 12px 16px 0; display: flex; flex-direction: column; gap: 16px; background: $bg; } // ─── Store Card ─── .hp__store { background: $card; border-radius: $r-lg; padding: 16px; box-shadow: $shadow-sm; display: flex; align-items: center; gap: 12px; } .hp__store-info { flex: 1; min-width: 0; } .hp__store-row { display: flex; align-items: center; gap: 8px; } .hp__store-name { font-size: 16px; font-weight: 600; color: $text-1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .hp__store-status { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: $primary; font-weight: 500; flex-shrink: 0; } .hp__store-dot { width: 6px; height: 6px; border-radius: 50%; background: $primary; animation: pulse-dot 2s ease-in-out infinite; } .hp__store-addr { font-size: 12px; color: $text-3; margin-top: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; } .hp__store-switch { display: flex; align-items: center; gap: 2px; font-size: 13px; color: $primary; font-weight: 500; padding: 8px 0; white-space: nowrap; flex-shrink: 0; } .hp__store-arrow { font-size: 18px; line-height: 1; color: $primary; } // ─── Scene Tabs ─── .hp__tabs { display: flex; gap: 0; background: #EEF2F6; border-radius: $r-full; padding: 3px; } .hp__tab { flex: 1; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: $r-full; font-size: 14px; font-weight: 500; color: $text-3; transition: all 0.25s ease; } .hp__tab--on { background: $primary; color: #fff; font-weight: 600; box-shadow: 0 2px 8px rgba(22, 163, 74, 0.3); } // ─── Dine-in Scan Button ─── .hp__scan { display: flex; align-items: center; justify-content: center; gap: 8px; height: 52px; border-radius: $r-md; background: $primary; box-shadow: 0 2px 12px rgba(22, 163, 74, 0.3); } .hp__scan-ico { display: flex; align-items: center; } .hp__scan-text { font-size: 16px; font-weight: 600; color: #fff; letter-spacing: 0.5px; } // ─── Search Bar ─── .hp__search { display: flex; align-items: center; gap: 8px; background: #F1F5F9; border-radius: $r-sm; padding: 0 14px; height: 40px; } .hp__search-ico { display: flex; align-items: center; flex-shrink: 0; } .hp__search-ph { font-size: 14px; color: $text-4; } // ─── Section Header ─── .hp__hd { display: flex; align-items: center; justify-content: space-between; padding: 4px 0; } .hp__hd-title { font-size: 18px; font-weight: 700; color: $text-1; letter-spacing: 0.3px; } .hp__hd-more { display: flex; align-items: center; gap: 2px; font-size: 13px; color: $text-4; padding: 8px 0; } .hp__hd-arrow { font-size: 16px; line-height: 1; } // ─── Promo Strip ─── .hp__promo { display: flex; align-items: center; gap: 8px; background: #FFFBEB; border-radius: $r-sm; padding: 10px 14px; border: 1px solid #FEF3C7; } .hp__promo-tag { background: $accent; color: #fff; font-size: 10px; font-weight: 600; padding: 2px 7px; border-radius: 4px; flex-shrink: 0; } .hp__promo-text { flex: 1; font-size: 13px; color: #92400E; font-weight: 500; } .hp__promo-arrow { font-size: 18px; color: $accent; line-height: 1; flex-shrink: 0; } // ─── Bottom Spacer ─── .hp__spacer { height: 80px; flex-shrink: 0; }