@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Inter:wght@300;400;500;600&display=swap";:root{--cream:#f4f0e8;--brown:#1c100a;--accent:#9c7a56;--gold:#c9a96e;--muted:#9a8b7e;--radius:16px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:#e8e0d4;height:100%;font-family:Inter,sans-serif;overflow-y:auto}#root{justify-content:center;align-items:flex-start;min-height:100vh;padding:2rem 0;display:flex}.app-shell{background:var(--cream);border-radius:40px;flex-direction:column;width:390px;height:844px;display:flex;position:relative;overflow:hidden;box-shadow:0 32px 80px #00000047}.screen{background:var(--cream);flex-direction:column;flex:1;display:flex;overflow:hidden}.login-screen{background:var(--brown);justify-content:center;padding:40px 32px}.login-header{text-align:center;margin-bottom:40px}.login-logo{color:var(--cream);letter-spacing:1px;font-family:Cormorant Garamond,serif;font-size:42px;font-weight:500}.login-sub{color:var(--muted);margin-top:6px;font-size:14px}.login-tabs{background:#ffffff14;border-radius:12px;margin-bottom:24px;padding:4px;display:flex}.login-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;flex:1;padding:10px;font-size:14px;transition:all .2s}.login-tab.active{background:var(--gold);color:var(--brown);font-weight:600}.login-form{flex-direction:column;gap:12px;display:flex}.login-input{color:var(--cream);background:#ffffff14;border:1px solid #ffffff1f;border-radius:12px;outline:none;padding:14px 16px;font-family:Inter,sans-serif;font-size:15px}.login-input::placeholder{color:#ffffff59}.login-input:focus{border-color:var(--gold)}.login-error{color:#e07070;text-align:center;font-size:13px}.login-btn{background:var(--gold);color:var(--brown);cursor:pointer;border:none;border-radius:14px;margin-top:8px;padding:16px;font-size:16px;font-weight:600}.topnav-stars{color:var(--gold);background:#c9a96e26;border-radius:20px;align-items:center;gap:4px;margin-right:auto;padding:5px 12px;font-size:13px;font-weight:600;display:flex}.topnav{background:var(--cream);z-index:10;border-bottom:1px solid #0000000f;align-items:center;padding:16px 20px 12px;display:flex;position:sticky;top:0}.topnav-logo{color:var(--brown);letter-spacing:.5px;text-align:center;flex:1;font-family:Cormorant Garamond,serif;font-size:22px;font-weight:600}.back-btn{cursor:pointer;color:var(--brown);background:0 0;border:none;width:32px;padding:0;font-size:20px}.cart-badge-btn{cursor:pointer;color:var(--brown);background:0 0;border:none;width:32px;padding:4px;position:relative}.cart-badge{background:var(--gold);color:var(--brown);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;font-weight:700;display:flex;position:absolute;top:-2px;right:-4px}.bottom-nav{background:var(--cream);border-top:1px solid #00000014;flex-shrink:0;padding:8px 0 16px;display:flex}.nav-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:6px 0;font-size:10px;transition:color .2s;display:flex}.nav-tab.active{color:var(--brown)}.nav-icon-wrap{justify-content:center;align-items:center;display:flex;position:relative}.nav-dot{background:var(--gold);border-radius:50%;width:7px;height:7px;position:absolute;top:-2px;right:-4px}.home-screen{overflow:hidden}.home-scroll{flex:1;padding-bottom:20px;overflow-y:auto}.home-header{padding:20px 20px 8px}.greet-sub{color:var(--muted);font-size:13px}.greet-name{color:var(--brown);font-family:Cormorant Garamond,serif;font-size:32px;font-weight:600}.stars-card{background:var(--brown);border-radius:var(--radius);margin:12px 20px;padding:18px}.stars-card-top{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.stars-label{color:#ffffff80;text-transform:uppercase;letter-spacing:1px;font-size:11px}.stars-count{color:#ffffffb3;margin-top:2px;font-size:13px}.stars-count span{color:var(--gold);font-size:22px;font-weight:600}.redeem-btn{background:var(--gold);color:var(--brown);cursor:pointer;border:none;border-radius:20px;padding:8px 18px;font-size:13px;font-weight:600;position:relative}.redeem-badge{background:var(--gold);border:1.5px solid var(--cream);border-radius:50%;width:15px;height:15px;position:absolute;top:-5px;right:-2px}.stars-bar-bg{background:#ffffff26;border-radius:3px;height:6px;overflow:hidden}.stars-bar-fill{background:var(--gold);border-radius:3px;height:100%;transition:width .5s}.stars-hint{color:#fff6;margin-top:8px;font-size:11px}.home-section{padding:16px 20px 4px}.section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-title{color:var(--brown);margin-bottom:12px;font-family:Cormorant Garamond,serif;font-size:20px;font-weight:600}.section-header .section-title{margin-bottom:0}.see-all{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:13px}.h-scroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-flow:row;gap:12px;padding-bottom:8px;display:flex;overflow-x:auto}.h-scroll::-webkit-scrollbar{display:none}.featured-card{border-radius:var(--radius);background:#fff;flex:0 0 140px;position:relative;overflow:hidden}.featured-card-img{object-fit:cover;flex-shrink:0;width:140px;height:110px;display:block}.feat-heart{cursor:pointer;background:#ffffffe0;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:absolute;top:6px;right:6px}.featured-card-info{padding:8px 10px 10px}.featured-name{color:var(--brown);white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;font-size:12px;font-weight:500;overflow:hidden}.featured-bottom{justify-content:space-between;align-items:center;display:flex}.featured-price{color:var(--accent);font-size:13px;font-weight:600}.fav-card{border-radius:var(--radius);background:#fff;flex:0 0 120px;position:relative;overflow:hidden}.fav-card-img{object-fit:cover;width:120px;height:90px;display:block}.fav-card-info{padding:7px 10px}.fav-card-name{color:var(--brown);font-size:11px;font-weight:500}.fav-card-price{color:var(--accent);margin-top:2px;font-size:11px}.fav-heart-btn{cursor:pointer;background:#ffffffe0;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:absolute;top:5px;right:5px}.add-btn{background:var(--brown);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.products-screen{overflow:hidden}.prod-tabs{flex-shrink:0;gap:8px;padding:10px 20px;display:flex}.prod-tab{color:var(--muted);cursor:pointer;background:0 0;border:1.5px solid #0000001a;border-radius:20px;padding:7px 18px;font-size:13px;transition:all .2s}.prod-tab.active{background:var(--brown);border-color:var(--brown);color:#fff}.prod-list{flex-direction:column;flex:1;gap:10px;padding:0 20px 20px;display:flex;overflow-y:auto}.prod-card{border-radius:var(--radius);background:#fff;flex-direction:row;align-items:stretch;display:flex;overflow:hidden}.prod-card-img{object-fit:cover;flex-shrink:0;width:88px;height:88px;display:block}.prod-card-body{flex-direction:column;flex:1;justify-content:space-between;min-width:0;padding:10px 12px;display:flex}.prod-card-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.prod-name{color:var(--brown);font-size:14px;font-weight:500}.prod-desc{color:var(--muted);margin-top:2px;font-size:12px}.heart-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;flex-shrink:0;padding:0}.prod-card-bottom{justify-content:space-between;align-items:center;display:flex}.prod-price{color:var(--accent);font-size:15px;font-weight:600}.qty-controls{align-items:center;gap:6px;display:flex}.qty-badge{background:var(--gold);color:var(--brown);border-radius:50%;justify-content:center;align-items:center;width:17px;height:17px;font-size:10px;font-weight:700;display:flex}.modal-overlay{z-index:50;background:#00000073;align-items:flex-end;display:flex;position:absolute;inset:0}.modal-sheet{background:var(--cream);border-radius:24px 24px 0 0;width:100%;padding:16px 24px 32px}.modal-handle{background:#00000026;border-radius:2px;width:36px;height:4px;margin:0 auto 18px}.modal-title{color:var(--brown);margin-bottom:4px;font-family:Cormorant Garamond,serif;font-size:22px;font-weight:600}.modal-subtitle{color:var(--muted);margin-bottom:16px;font-size:13px}.milk-options{flex-direction:column;gap:8px;margin-bottom:18px;display:flex}.milk-option{cursor:pointer;color:var(--brown);background:#fff;border:1.5px solid #0000001a;border-radius:12px;justify-content:space-between;align-items:center;padding:11px 14px;font-size:14px;transition:all .15s;display:flex}.milk-option.selected{border-color:var(--gold);background:#c9a96e14;font-weight:500}.milk-extra{color:var(--accent);font-size:13px}.modal-add-btn{background:var(--brown);width:100%;color:var(--cream);cursor:pointer;border:none;border-radius:14px;padding:15px;font-size:15px;font-weight:600}.order-screen{overflow:hidden}.empty-cart{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.empty-sub{font-size:13px}.order-list{flex-direction:column;flex:1;gap:10px;padding:12px 20px;display:flex;overflow-y:auto}.order-item{border-radius:var(--radius);background:#fff;align-items:center;padding-right:12px;display:flex;overflow:hidden}.order-item-img{object-fit:cover;flex-shrink:0;width:70px;height:70px;display:block}.order-item-body{flex:1;padding:0 10px}.order-item-name{color:var(--brown);font-size:14px;font-weight:500}.order-item-milk{color:var(--accent);margin-top:2px;font-size:12px}.order-item-price{color:var(--accent);margin-top:4px;font-size:14px;font-weight:600}.order-qty{align-items:center;gap:6px;display:flex}.qty-btn{cursor:pointer;background:#fff;border:1.5px solid #0000001f;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.qty-num{color:var(--brown);text-align:center;min-width:18px;font-size:14px;font-weight:600}.order-summary{background:#fff;border-top:1px solid #00000014;flex-shrink:0;padding:14px 20px 18px}.summary-row{color:var(--brown);justify-content:space-between;margin-bottom:7px;font-size:14px;display:flex}.summary-row.discount{color:#6a9e6a}.summary-row.total-row{border-top:1px solid #00000014;margin-top:4px;margin-bottom:10px;padding-top:8px;font-size:16px;font-weight:700}.stars-earn-note{color:var(--accent);text-align:center;margin-bottom:12px;font-size:12px}.place-order-btn{background:var(--brown);width:100%;color:var(--cream);cursor:pointer;border:none;border-radius:14px;padding:14px;font-size:15px;font-weight:600}.payment-form{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.payment-summary{background:var(--brown);border-radius:var(--radius);text-align:center;padding:20px}.payment-label{color:#ffffff80;text-transform:uppercase;letter-spacing:1px;font-size:12px}.payment-total{color:var(--gold);margin:4px 0;font-size:42px;font-weight:700}.discount-note{color:#8ecf8e;margin-top:4px;font-size:13px}.stripe-form{border-radius:var(--radius);background:#fff;flex-direction:column;gap:10px;padding:18px;display:flex}.stripe-label{color:var(--brown);font-size:13px;font-weight:600}.stripe-input{color:var(--brown);border:1.5px solid #0000001a;border-radius:10px;outline:none;width:100%;padding:11px 14px;font-family:Inter,sans-serif;font-size:14px}.stripe-input:focus{border-color:var(--gold)}.stripe-row{gap:10px;display:flex}.stripe-input.half{width:50%}.stripe-note{text-align:center;color:var(--muted);font-size:12px}.confirmed-view{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:32px;display:flex}.confirmed-icon{background:var(--brown);width:72px;height:72px;color:var(--gold);border-radius:50%;justify-content:center;align-items:center;margin-bottom:8px;font-size:32px;display:flex}.confirmed-view h2{color:var(--brown);font-family:Cormorant Garamond,serif;font-size:28px}.confirmed-stars{color:var(--accent);font-size:15px}.confirmed-sub{color:var(--muted);font-size:14px}.rewards-screen{overflow:hidden}.rewards-scroll{flex-direction:column;flex:1;gap:14px;padding:16px 20px 24px;display:flex;overflow-y:auto}.rewards-stars-card{background:var(--brown);border-radius:var(--radius);padding:20px}.rewards-stars-top{align-items:center;gap:14px;margin-bottom:16px;display:flex}.rewards-star-icon{background:var(--gold);width:48px;height:48px;color:var(--brown);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.rewards-stars-num{color:var(--gold);font-size:36px;font-weight:700;line-height:1}.rewards-stars-label{color:#ffffff80;margin-top:2px;font-size:13px}.rewards-bar-labels{color:#ffffff59;justify-content:space-between;margin-top:8px;font-size:11px;display:flex}.free-product-card{border:1.5px solid var(--gold);border-radius:var(--radius);background:#fff;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.free-product-info{flex:1}.claim-btn{background:var(--brown);color:var(--cream);cursor:pointer;white-space:nowrap;border:none;border-radius:20px;flex-shrink:0;padding:8px 16px;font-size:13px;font-weight:600}.code-section{border-radius:var(--radius);background:#fff;padding:16px 18px}.code-title{color:var(--brown);margin-bottom:4px;font-size:15px;font-weight:600}.store-code-box{background:var(--cream);text-align:center;border:2px dashed #c9a96e66;border-radius:12px;margin-top:12px;padding:16px}.store-code-text{color:var(--brown);letter-spacing:4px;font-family:Inter,monospace;font-size:24px;font-weight:700}.store-code-hint{color:var(--muted);margin-top:4px;font-size:12px}.code-sub{color:var(--muted);margin-bottom:12px;font-size:12px}.code-input-row{gap:8px;display:flex}.code-input{letter-spacing:2px;color:var(--brown);border:1.5px solid #0000001a;border-radius:10px;outline:none;flex:1;padding:11px 14px;font-family:Inter,sans-serif;font-size:14px;font-weight:600}.code-input:focus{border-color:var(--gold)}.code-btn{background:var(--brown);color:var(--cream);cursor:pointer;border:none;border-radius:10px;padding:11px 16px;font-size:14px;font-weight:600}.code-msg{margin-top:10px;font-size:13px}.code-msg.success{color:#6a9e6a}.code-msg.error{color:#c06060}.rewards-history{border-radius:var(--radius);background:#fff;padding:16px 18px}.history-row{border-bottom:1px solid #0000000f;justify-content:space-between;align-items:center;padding:9px 0;font-size:14px;display:flex}.history-row:last-child{border-bottom:none}.history-date{color:var(--muted)}.history-stars{color:var(--accent);font-weight:600}.account-screen{overflow:hidden}.account-scroll{flex-direction:column;flex:1;gap:12px;padding:16px 20px 24px;display:flex;overflow-y:auto}.account-section{border-radius:var(--radius);background:#fff;padding:16px 18px}.account-section h3{color:var(--brown);margin-bottom:12px;font-size:15px;font-weight:600}.account-section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.account-section-header h3{margin-bottom:0}.edit-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:14px}.account-row{color:var(--brown);border-bottom:1px solid #0000000f;justify-content:space-between;align-items:center;padding:9px 0;font-size:14px;display:flex}.account-row:last-child{border-bottom:none}.account-label{color:var(--muted);font-size:13px}.account-input{width:100%;color:var(--brown);border:1.5px solid #0000001a;border-radius:10px;outline:none;margin-bottom:8px;padding:11px 14px;font-family:Inter,sans-serif;font-size:14px;display:block}.account-input:focus{border-color:var(--gold)}.account-save-btn{background:var(--brown);width:100%;color:var(--cream);cursor:pointer;border:none;border-radius:10px;margin-top:4px;padding:11px;font-size:14px;font-weight:600}.pw-msg{margin:6px 0;font-size:13px}.pw-msg.success{color:#6a9e6a}.pw-msg.error{color:#c06060}.account-empty{color:var(--muted);font-size:14px}.order-history-row{border-bottom:1px solid #0000000f;justify-content:space-between;align-items:center;padding:9px 0;display:flex}.order-history-row:last-child{border-bottom:none}.oh-date{color:var(--brown);font-size:13px;font-weight:500}.oh-items{color:var(--muted);margin-top:2px;font-size:12px}.oh-right{text-align:right}.oh-total{color:var(--brown);font-size:14px;font-weight:600}.oh-stars{color:var(--accent);margin-top:2px;font-size:12px}.signout-btn{color:#c05050;border-radius:var(--radius);cursor:pointer;background:0 0;border:1.5px solid #c850504d;width:100%;padding:14px;font-size:15px;font-weight:500}.delete-account-btn{color:#fff;border-radius:var(--radius);cursor:pointer;background:#350707;border:none;width:100%;margin-top:8px;padding:14px;font-size:15px;font-weight:500}.how-it-works{border-radius:var(--radius);background:#fff;margin-bottom:16px;padding:16px}.how-it-works h3{color:var(--brown);margin-bottom:12px;font-size:14px;font-weight:600}.hiw-row{align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.hiw-row:last-child{margin-bottom:0}.hiw-num{background:var(--gold);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-top:1px;font-size:12px;font-weight:700;display:flex}.hiw-text{color:var(--brown);font-size:13px;line-height:1.5}.history-stars.redeemed{color:#6a9e6a}.stripe-card-element{background:#fff;border:1.5px solid #0000001a;border-radius:10px;margin-bottom:8px;padding:13px 14px}.stripe-card-element.StripeElement--focus{border-color:var(--gold)}.stripe-card-element.StripeElement--invalid{border-color:#c06060}.stripe-error{color:#c06060;margin:4px 0 8px;font-size:13px}.free-reward-banner{border:1.5px solid var(--gold);border-radius:var(--radius);cursor:pointer;background:#fff;align-items:center;gap:12px;margin:0 16px 8px;padding:13px 16px;transition:border-color .2s;display:flex}.free-reward-banner.applied{border-color:#6a9e6a}.free-reward-text{flex:1}.free-reward-title{color:var(--brown);font-size:14px;font-weight:600}.free-reward-sub{color:var(--muted);margin-top:2px;font-size:12px}.free-reward-check{background:var(--gold);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:13px;font-weight:700;display:flex}.free-reward-banner.applied .free-reward-check{background:#6a9e6a}
