/* Shared mobile application design, matching the approved Figma screens. */
:root{--yellow:#ffd12a;--yellow-hover:#f2c51e;--surface:#ffffff;--surface-cont:#f4f4f4;--surface-cont-hi:#fff0ab;--on-variant:#71756c;--outline-soft:#e6e6e6;--paper:#ffffff;--soft:#f4f4f4;--yellow-soft:#fff0ab}
body{background:var(--paper)}
.top,.tabs{background:var(--paper)}
.icon-btn{background:var(--soft);border-radius:50%}
.btn,.prov,.pay__in,.sheet__add{border-radius:12px;box-shadow:none;font-size:15px;font-weight:600;min-height:52px}
.btn--dark,.prov,.pay__in{background:var(--yellow)}
.pay{background:linear-gradient(transparent,var(--paper) 20%)}
.pay__in{background:var(--yellow)}
.pay__b{font-size:15px}
.card-sect{border:0;background:transparent;margin:16px 20px;padding:0}
.sect__h{font-size:20px;line-height:26px;margin:0 0 12px}
.field{margin:12px 0}
.field__i{background:var(--soft);border:1px solid transparent;box-shadow:none;border-radius:12px;font-size:16px;min-height:56px}
.field__i:focus{border-color:var(--primary)}
.field__l{font-size:12px;line-height:16px;color:var(--on-variant);margin-bottom:6px}
.hint,.field__h{font-size:13px;line-height:18px}
.account-row{min-height:56px;padding:8px 16px;margin:4px 0;border:0;border-radius:0;background:transparent;font-size:15px;gap:12px;text-align:left;width:100%;font-family:inherit}
.account-row span{background:var(--yellow-soft);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0;font-size:20px}
.foot{border:0;font-size:12px;padding-top:24px}
/* Dish details: image-led bottom sheet, without generic information tiles. */
.sheet__box{max-width:var(--sheet);border-radius:24px 24px 0 0;background:var(--paper);max-height:94dvh;overflow:hidden;position:relative}
.sheet__box:before{position:absolute;top:8px;left:50%;transform:translateX(-50%);margin:0;background:rgba(255,255,255,.8);z-index:3;width:32px}
.sheet__head{display:none}
.sheet__x{top:12px;right:12px;background:var(--paper);border-radius:50%}
.sheet__scroll{border-radius:0}
.sheet__pic{margin:0;border-radius:0;aspect-ratio:auto;height:224px;max-height:none;width:100%}
.sheet__pic img{width:100%;height:100%;object-fit:cover}
.sheet__body{padding:20px;display:flex;flex-direction:column;gap:12px}
.sheet__n{font-size:28px;line-height:32px;margin:0;font-weight:700}
.sheet__weight{font-size:13px;line-height:18px;margin:0 0 12px}
.sheet__note{font-size:12px;line-height:16px;color:var(--on-variant);margin:8px 0 0}
.nutri{background:none;padding:8px 0 0;gap:8px;border-radius:0}
.nutri__c{background:none;padding:0;min-width:0}
.nutri__v{font-size:15px;line-height:22px}
.nutri__k{font-size:11px;line-height:16px;white-space:normal}
.sheet__options{margin:0 0 12px}
.sheet__options legend{font-size:13px;color:var(--on-variant);font-weight:400}
.sheet__options .option{background:var(--soft);border-radius:22px;border:0;outline:0;font-size:13px;min-height:44px}
.sheet__options .option:has(input:checked){background:var(--primary);color:var(--paper)}
.option input{accent-color:var(--yellow)}
.sheet__foot{flex-wrap:nowrap;padding:12px 20px calc(12px + env(safe-area-inset-bottom));gap:12px;background:var(--paper)}
.sheet__foot:before{display:none}
.sheet__foot .qty{flex:0 0 106px;width:106px;height:44px;background:var(--soft);border-radius:12px;display:flex;justify-content:space-between}
.sheet__foot .qty__b{min-width:36px;width:36px;padding:0}
.sheet__foot .qty__n{min-width:18px}
.sheet__add{flex:1 1 0;min-width:0;margin:0;height:52px;font-size:15px;padding:0 8px}
/* Compact selected-product summary shared by cart, checkout and status. */
.cart-cover{display:none!important}
.line{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px 12px;padding:12px 0;border:0;align-items:start;position:relative;min-height:120px}
.line__pic,body.checkout .line__pic{width:96px;height:96px;border-radius:16px;object-fit:cover;grid-column:1;grid-row:1 / 3}
.line__b,body.checkout .line__b{grid-column:2;min-width:0;flex-basis:auto}
.line__n{font-size:16px;line-height:22px;margin:0;font-weight:600}
.line__p{font-size:13px;line-height:18px;color:var(--on-variant);margin:4px 0}
.line__price{font-size:18px;line-height:24px;grid-column:2;min-height:44px;display:flex;align-items:center;padding-right:112px}
.line .step{position:absolute;right:0;bottom:12px;margin:0;display:flex;width:106px;height:44px;border:0;border-radius:12px;background:var(--yellow);justify-content:space-between}
.line .step button{width:36px;min-width:36px;height:44px;background:none;border:0;padding:0;font-size:20px}
.line .step span{min-width:18px;width:18px;display:flex;align-items:center;justify-content:center;font-size:14px}
body.checkout .line__price{padding:0}
.pickup-summary{margin:12px 20px;background:var(--yellow-soft);border-radius:12px;padding:12px;font-size:15px;line-height:22px}
.pickup-summary p{margin:4px 0 0;font-size:13px;color:var(--on-variant)}
.ready{background:var(--yellow-soft);border-radius:12px;box-shadow:none}
.addons{gap:12px}
.addons .addon{background:var(--soft);border-radius:16px;padding:12px;grid-template-columns:64px 1fr;min-height:88px}
.addon img{border-radius:12px}
/* Payment selection and review share the same real order. */
.payway{display:grid;grid-template-columns:40px minmax(0,1fr);gap:4px 12px;text-align:left;border:0;background:var(--soft);padding:12px;border-radius:16px;min-height:72px;width:100%}
.payway:before{content:'СБП';grid-row:1 / 3;width:40px;height:40px;border-radius:12px;background:var(--paper);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;align-self:center}
.payway[data-method=card]:before{content:'';background:var(--paper) url('/v2/assets/payment-card.svg') center no-repeat}
.payway.is-on{background:var(--yellow-soft);box-shadow:none;border:0}
.payway__n{font-size:15px;line-height:22px}
.payway__d{font-size:12px;line-height:18px;color:var(--on-variant)}
.payment-summary{background:var(--soft);padding:16px;border-radius:16px;font-size:15px;line-height:22px}
.payment-summary strong{display:block;margin-bottom:8px}
.payment-summary p{font-size:13px;color:var(--on-variant);margin:4px 0}
body.payment-step #checkoutFields{display:none}
body.payment-step #clear,body.payment-step #addonSect,body.payment-step #pickupSummary{display:none}
body.payment-step .line .step{display:none}
.payment-step #paymentView{margin:20px}
.payment-step #paymentView .sect__h{margin:20px 0 12px}
/* Account, authentication and profile subsections. */
.account .who{padding:16px 20px;margin:0}
.account .who__box{background:none;padding:0;border:0;border-radius:0}
.account-brand{display:flex;align-items:center;gap:12px;background:var(--primary);border-radius:20px;padding:16px 12px 16px 16px;min-height:120px;margin-bottom:12px}
.account-brand .account-heading{color:var(--yellow);font-size:28px;line-height:34px;margin:0;flex:1;min-width:0}
.account-brand img{width:96px;height:96px;border-radius:16px;object-fit:cover}
.account .account-intro{font-size:15px;line-height:22px;margin:0 0 20px;color:var(--on-variant)}
.account .who__row{background:var(--primary);color:var(--paper);padding:20px 16px;border-radius:20px;min-height:128px;flex-direction:row-reverse;justify-content:space-between;margin-bottom:16px}
.account .who__row .who__h{font-size:28px;line-height:34px;color:var(--yellow);font-weight:700}
.account .who__row .who__p{color:var(--paper);font-size:13px;line-height:18px}
.account .ava{width:48px;height:48px;border-radius:50%;background:var(--yellow);color:var(--primary);font-size:24px;flex-shrink:0}
.account-nav{margin:12px 0}
.account .who__p{font-size:13px;line-height:18px}
.account #providers .prov{background:var(--primary);color:var(--paper)}
.account #providers{background:linear-gradient(transparent,var(--paper) 20%)}
.account .pwd{padding:0;background:none;border:0;box-shadow:none;margin-top:16px}
.account .order{background:none;box-shadow:none;border:0;padding:16px 0;border-radius:0}
.account .order.is-active{background:var(--yellow-soft);border-radius:16px;padding:16px;margin-bottom:12px}
.account .order__code{font-size:18px;font-weight:700}
.account .order__when{font-size:12px;line-height:18px}
.account .order__items{font-size:14px;line-height:22px}
.account .order__foot{flex-wrap:wrap;gap:8px}
.profile-section{margin:20px}
.profile-section h1{font-size:28px;line-height:34px;margin:0 0 16px}
.account .tglink{background:var(--yellow-soft);border-radius:12px;padding:12px}
.account #logout{color:var(--primary)}
/* Empty, error and live order states. */
.blank{padding:40px 20px}
.blank:before{content:'＋';display:flex;align-items:center;justify-content:center;background:var(--yellow-soft);width:56px;height:56px;border-radius:50%;font-size:28px;margin-bottom:20px}
.blank__h{font-size:28px;line-height:34px;font-weight:700}
.blank__p{font-size:15px;line-height:22px}
.alarm{margin:20px;border:0;background:#fff0eb;border-radius:16px;padding:16px}
.pickup-code{background:var(--primary);border-radius:20px;padding:20px;margin:20px}
.pickup-code p{color:var(--paper);font-size:15px;margin:0 0 12px}
.pickup-code strong{color:var(--yellow);font-size:48px;line-height:52px}
.status-heading{font-size:28px;line-height:34px;margin:20px 20px 12px}
.status-intro{font-size:15px;line-height:22px;margin:12px 20px}
.track{margin:20px;box-shadow:none}
.track li{font-size:12px}
.done{padding-top:20px}
.done__cap,.done__code{margin-left:20px;margin-right:20px;background:var(--primary);color:var(--paper);text-align:left;padding:20px 20px 0;border-radius:20px 20px 0 0}
.done__code{margin-top:0;padding:8px 20px 20px;color:var(--yellow);border-radius:0 0 20px 20px;font-size:48px}
.done__when{font-size:15px;line-height:22px}
.done .stack{margin:20px}
.line--flat:not(:has(img)){grid-template-columns:minmax(0,1fr) auto;min-height:0}
.line--flat:not(:has(img)) .line__b{grid-column:1}
.line--flat:not(:has(img)) .line__price{grid-column:2;padding:0}
.total{border:0;margin-top:16px}
@media(max-width:359px){.line{grid-template-columns:72px minmax(0,1fr)}.line__pic,body.checkout .line__pic{width:72px;height:72px}.sheet__body{padding:16px}.sheet__foot{padding-left:16px;padding-right:16px}.sheet__n{font-size:26px;line-height:30px}.account-brand img{width:80px;height:80px}.account-brand .account-heading{font-size:24px;line-height:30px}}
@media(prefers-reduced-motion:reduce){.sheet__box{animation:none}}
#paymentView>.sect__h,#paymentView>.payment-summary,#paymentView>#paymentEdit,#paymentView>.hint{display:none}
.payment-review #paymentView>.sect__h,.payment-review #paymentView>.payment-summary,.payment-review #paymentView>#paymentEdit,.payment-review #paymentView>.hint{display:block}
.payment-review #paymentView>.card-sect{display:none}
#paymentView>.card-sect{margin:0}
.account-subpage .who__row[hidden]{display:none}
.account-subpage .who{padding-top:20px}
.home .tab{display:inline-flex;align-items:center;gap:10px;background:var(--soft);padding:8px 16px 8px 8px}
.home .tab.is-on{background:var(--primary);color:var(--paper)}
.home .tab img{width:28px;height:28px;object-fit:cover;border-radius:50%;flex-shrink:0}
.sheet__weight{margin-bottom:0}
.payment-review #paymentView>#paymentEdit{display:flex}
.transaction-state{padding:24px 20px}
.transaction-state h1{font-size:28px;line-height:34px;margin:20px 0 12px}
.transaction-state>p{font-size:15px;line-height:22px;color:var(--on-variant)}
.state-mark{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:18px;background:var(--yellow-soft);font-size:28px}
.transaction-state .btn{width:100%;margin-top:24px}
.sect__h{color:var(--primary)}
body.checkout #pickupSummary{display:none}
#tgWidget:not(:empty){background:var(--yellow-soft);border-radius:12px;padding:12px;margin-top:16px}
#tgWidget .hint{margin:0}
.done__cap{text-transform:none;letter-spacing:0}
.done .line__s{grid-column:2;font-size:18px;line-height:24px}
#doneLinkA{overflow-wrap:anywhere;word-break:break-word;max-width:100%}
/* Short, restrained motion. Geometry stays fixed when quantities change. */
:root{--ease-soft:cubic-bezier(.22,.8,.25,1);--motion-fast:160ms;--motion-normal:260ms}
.home .top .icon-btn[href='/v2/account']{background:#fff;color:var(--primary)}
button,a,.option{transition:background-color var(--motion-fast) ease,color var(--motion-fast) ease,opacity var(--motion-fast) ease,transform var(--motion-fast) var(--ease-soft)}
:is(.btn,.prov,.icon-btn,.item__add,.sheet__add,.addon,.tab,.account-row):active{transform:scale(.975);opacity:1}
.item__step button:active,.step button:active,.qty__b:active{transform:scale(.9);opacity:1}
.field__i{transition:background-color 180ms ease,border-color 180ms ease,box-shadow 180ms ease}
.payway,.pill,.option{transition:background-color 200ms ease,color 200ms ease,opacity 180ms ease}
.sheet__box{animation:sheet-in 340ms var(--ease-soft)}
.sheet__veil{animation:veil-in 260ms ease}
.sheet__box.is-settling{transition:transform 280ms var(--ease-soft)}
.sheet__box.is-dragging{animation:none;transition:none}
.toast{transition:opacity 220ms ease,transform 260ms var(--ease-soft)}
@keyframes veil-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
/* Calm category transitions: no press flash or moving text/photo geometry. */
.home .tab{transition:background-color 260ms ease,color 260ms ease;transform:none;opacity:1}
.home .tab:active{transform:none;opacity:1}
.home .hero__h>span{display:block}
.home .hero__h>span:last-child{text-align:right}
.account-brand,.account .who__row,.pickup-code{background:var(--yellow);color:var(--primary)}
.account-brand .account-heading,.account .who__row .who__h,.account .who__row .who__p,.pickup-code p,.pickup-code strong{color:var(--primary)}
.done__cap,.done__code{background:var(--yellow);color:var(--primary)}
@media(prefers-reduced-motion:reduce){.home .tab{transition:none}}

/* 31.10: compact account and contextual recommendations */
.account #providers{position:static;transform:none;max-width:none;padding:0;background:none;margin:16px 0 12px}
.account #providers .prov[data-p="telegram"],.prov[data-p="telegram"]{background:#2aabee;color:#fff;min-height:52px;border-radius:12px}
.account #providers .prov[data-p="telegram"]:hover,.prov[data-p="telegram"]:hover{background:#229ed9;color:#fff}
.account .who__box{background:transparent;padding:0;border-radius:0}
.account .who__row{background:transparent;padding:0;margin-bottom:20px}
.account .ava{display:none}.account .who__row .who__h{font-size:28px;line-height:34px}
.account .account-consent{font-size:12px;line-height:18px;margin:8px 0 24px}
.account .card-sect{border:0}.account-menu{display:flex;margin:20px;justify-content:center}
.account #logout{font-weight:400;color:var(--on-variant)}.account #logout span{display:none}
.account-row span img{display:block;flex:none}
.upsell{border:0;padding:0;color:var(--primary);background:var(--paper,#ffffff);width:min(100%,430px);max-width:100%;height:100dvh;max-height:100dvh;margin:0 auto;overflow:hidden;font-family:inherit}
.upsell::backdrop{background:rgb(0 0 0/.35)}
.upsell[open]{animation:upsell-in .25s cubic-bezier(.32,.72,0,1)}
.upsell__page{height:100%;display:flex;flex-direction:column}
.upsell header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;padding-top:max(12px,env(safe-area-inset-top));gap:12px;font-size:15px}
.upsell header>span{width:44px}.upsell__body{padding:16px 20px 24px;overflow:auto;flex:1;min-height:0}
.upsell h2{font-size:28px;line-height:34px;margin:0 0 12px;outline:none}.upsell p{font-size:15px;line-height:22px;color:var(--on-variant);margin:0 0 12px}
.upsell__row{width:100%;min-height:56px;padding:8px 16px;display:flex;gap:12px;align-items:center;justify-content:space-between;border:0;background:transparent;text-align:left;font:600 15px/22px inherit;color:inherit;font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;border-radius:12px}
.upsell__row:active{background:var(--yellow-soft)}.upsell__arrow{background:var(--yellow-soft);border-radius:50%;width:32px;height:32px;display:grid;place-items:center;flex:none}
.upsell footer{padding:12px 20px max(20px,env(safe-area-inset-bottom));display:grid;gap:12px}.upsell footer .btn{width:100%;min-height:52px;border-radius:12px}
@keyframes upsell-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.upsell[open]{animation:none}}

.account-active{display:block;background:var(--yellow);color:var(--primary);padding:20px;border-radius:20px;text-decoration:none;font-weight:700;line-height:26px;margin:16px 0 20px}.account-active[hidden]{display:none}.account-menu{background:var(--soft,#f4f4f4);border:0}

/* Stable recommendation shell: only its scrollable content changes steps. */
.upsell::backdrop{transition:background-color .18s ease}
.upsell.is-closing::backdrop{background:rgb(0 0 0/0)}
.upsell__group{margin:20px 0 0}.upsell__group h3{font-size:15px;line-height:22px;margin:0 0 4px;font-weight:600;color:var(--on-variant)}
.upsell__row{transition:background-color .16s ease,transform .18s ease,opacity .18s ease}
.upsell__row:active{transform:scale(.985)}
.upsell__row:disabled{opacity:.5;cursor:default}.upsell__row.is-added{opacity:1;background:var(--yellow-soft)}
.upsell__row.is-added .upsell__arrow{background:var(--yellow);font-weight:700}
@media(prefers-reduced-motion:reduce){.upsell::backdrop,.upsell__row{transition:none}.upsell__row:active{transform:none}}

.upsell #upsellTitle:focus{outline:none;box-shadow:none}.upsell__row{line-height:22px}

/* Small menu photos keep recommendation rows compact and aligned. */
.upsell__photo-slot{width:48px;height:48px;flex:0 0 48px;border-radius:12px;background:var(--soft,#f4f4f4);overflow:hidden}
.upsell__photo{display:block;width:48px;height:48px;object-fit:cover}.upsell__photo[hidden]{display:none}
.upsell__label{flex:1;min-width:0;overflow-wrap:anywhere}.upsell__row:has(.upsell__photo-slot){padding:8px 0;min-height:64px}

/* Recommendations slide as one stable page rather than flash into view. */
.upsell[open]{animation:none;background:transparent}
.upsell__page{background:var(--paper,#ffffff);will-change:transform}
.upsell[open]::backdrop{animation:veil-in 320ms ease both;transition:background-color 320ms ease}
.upsell.is-closing::backdrop{animation:none;background:rgb(0 0 0/0)}
@media(prefers-reduced-motion:reduce){.upsell[open]::backdrop{animation:none;transition:none}.upsell__page{will-change:auto}}

/* A bottom-anchored sheet; the browser must not center the animated panel. */
.upsell{position:fixed;inset:auto 0 0;margin:0 auto;height:min(90dvh,860px);max-height:90dvh;overflow:hidden}
.upsell__page{border-radius:24px 24px 0 0;overflow:hidden}
.upsell header{padding-top:14px}
.upsell__arrow[hidden],.state-mark{display:none!important}
.sheet__box{animation:gc-sheet-rise 360ms var(--ease-soft)}
@keyframes gc-sheet-rise{from{transform:translateY(100%)}to{transform:translateY(0)}}

/* Move the modal itself: its content has no moving scroll container. */
.upsell{will-change:transform;transform:translate3d(0,0,0)}.upsell__page{will-change:auto}
@media(prefers-reduced-motion:reduce){.upsell{will-change:auto;transform:none}}

/* Approved 01.11 checkout and deliberate selection. */
.field__i{background:#fff;border:1px solid rgb(34 37 31/.22);border-radius:8px;min-height:48px}
.field__i:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgb(34 37 31/.06)}
.upsell__row{position:relative}.upsell__row.is-selected{background:var(--yellow-soft)}
.upsell__row.is-selected::after{content:'';position:absolute;inset:auto 0 0;height:4px;border-radius:2px;background:var(--yellow)}
.upsell__row[aria-pressed]{padding-left:8px;padding-right:8px}
.cart-empty #blank:not([hidden]){position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;min-height:calc(100svh - 72px);padding:24px 20px 100px}
.cart-empty #blank .blank__h,.cart-empty #blank .blank__p{text-align:center}
.cart-empty #blank .btn{position:absolute;bottom:calc(20px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:calc(100% - 40px);max-width:390px;display:flex;justify-content:center}
.cart-empty .foot{display:none}

.blank:before{content:none;display:none}

/* Text-only categories retain the existing smooth active-state transition. */
.home .tab{justify-content:center;text-align:center;gap:0;padding:10px 20px;min-height:44px}
.home .tab img{display:none}
