.catalog{padding-bottom:16px}.banner{height:160px;background:linear-gradient(135deg,#0f172a,#1e3a5f);overflow:hidden}.banner__slide{height:100%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;font-weight:700}.catalog__search{padding:12px 16px 8px}.catalog__filters{display:flex;gap:8px;padding:0 16px 8px}.catalog__filters select{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-bg-secondary);color:var(--color-text);border:none;border-radius:var(--radius-sm);padding:8px 12px;font-size:13px}.catalog__categories{display:flex;gap:8px;padding:0 16px 12px;overflow-x:auto;scrollbar-width:none}.catalog__categories::-webkit-scrollbar{display:none}.category-chip{flex-shrink:0;padding:6px 14px;border-radius:20px;background:var(--color-bg-secondary);color:var(--color-text);font-size:13px;font-weight:500;transition:background .15s,color .15s}.category-chip.active{background:var(--color-accent);color:#fff}.catalog__loading{text-align:center;padding:40px;color:var(--color-text-hint)}.product-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px}.product-card{background:var(--color-bg-secondary);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column;cursor:pointer;transition:opacity .15s}.product-card:active{opacity:.7}.product-card__img-wrap{width:100%;aspect-ratio:1 / 1;overflow:hidden;background:var(--color-bg)}.product-card__img{width:100%;height:100%;object-fit:cover;display:block}.product-card__img-placeholder{width:100%;height:100%;background:color-mix(in srgb,var(--color-text) 8%,transparent)}.product-card__body{padding:10px;display:flex;flex-direction:column;gap:4px;flex:1}.product-card__category{font-size:11px;text-transform:uppercase;letter-spacing:.05em}.product-card__name{font-size:13px;font-weight:600;line-height:1.3}.product-card__desc{font-size:11px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-card__price{font-size:14px;font-weight:700;color:var(--color-accent);margin-top:auto}.cart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;gap:12px;color:var(--color-text-hint)}.cart-empty__icon{font-size:48px}.cart{padding:16px;display:flex;flex-direction:column;gap:16px}.cart__title{font-size:18px;font-weight:700}.cart__items{display:flex;flex-direction:column;gap:10px}.cart-item{display:flex;align-items:center;gap:12px;background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:10px}.cart-item__img{width:60px;height:60px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.cart-item__img--placeholder{background:color-mix(in srgb,var(--color-text) 8%,transparent)}.cart-item__info{flex:1;display:flex;flex-direction:column;gap:2px}.cart-item__name{font-size:14px;font-weight:600}.cart-item__attr{font-size:12px}.cart-item__price{font-size:14px;font-weight:700;color:var(--color-accent)}.cart-item__controls{display:flex;align-items:center;gap:8px;flex-shrink:0}.cart-item__qty-btn{width:28px;height:28px;border-radius:50%;background:var(--color-bg);color:var(--color-text);font-size:16px;display:flex;align-items:center;justify-content:center;transition:opacity .15s}.cart-item__qty-btn:disabled{opacity:.25;cursor:not-allowed}.cart-item__qty{min-width:20px;text-align:center;font-size:14px;font-weight:600}.cart-item__remove{width:24px;height:24px;border-radius:50%;background:transparent;color:var(--color-text-hint);font-size:18px;display:flex;align-items:center;justify-content:center;margin-left:2px;transition:color .15s}.cart-item__remove:active{color:#ef4444}.cart-item--unavailable{opacity:.55}.cart-item__badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px;margin-top:2px;align-self:flex-start}.cart-item__badge--out{background:#ef44441f;color:#ef4444}.cart-item__badge--low{background:#f973161f;color:#f97316}.cart__delivery{display:flex;flex-direction:column;gap:8px}.cart__delivery-toggle{display:flex;gap:8px}.cart__delivery-btn{flex:1;padding:10px;border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-hint);font-size:13px;font-weight:600;border:2px solid transparent;transition:all .15s}.cart__delivery-btn--active{border-color:var(--color-accent);color:var(--color-text)}.cart__delivery input[type=text]{width:100%}.cart-warning{font-size:13px;font-weight:500;padding:10px 14px;border-radius:var(--radius-md);line-height:1.4}.cart-warning--error{background:#ef44441a;color:#ef4444}.cart-warning--warn{background:#f973161a;color:#f97316}.cart__footer{display:flex;flex-direction:column;gap:12px}.cart__total{font-size:16px;text-align:right}.cart__coins-preview{font-size:13px;color:var(--color-text-hint);text-align:right}.cart__coins-preview strong{color:var(--color-accent)}.btn-primary{width:100%;padding:14px;border-radius:var(--radius-md);background:var(--color-accent);color:#fff;font-size:15px;font-weight:600;transition:opacity .15s}.cart__continue-btn{padding:12px 24px;border-radius:var(--radius-md);border:2px solid var(--color-accent);color:var(--color-accent);font-size:14px;font-weight:600;background:transparent}.profile{display:flex;flex-direction:column;gap:12px;padding:12px 12px 80px;overflow-y:auto;height:100%}.profile__card{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:14px}.profile__card-top{display:flex;align-items:center;gap:12px}.profile__avatar{width:54px;height:54px;border-radius:50%;flex-shrink:0;object-fit:cover}.profile__avatar--letter{background:var(--color-accent);color:#fff;font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center}.profile__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.profile__name{font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile__id-btn{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--color-text-hint);background:none;border:none;padding:0;cursor:pointer;font-family:monospace}.profile__id-copy{font-size:13px;color:var(--color-accent)}.profile__coins{display:flex;flex-direction:column;align-items:center;gap:2px;background:color-mix(in srgb,var(--color-accent) 12%,transparent);border-radius:var(--radius-md);padding:8px 14px;min-width:76px;flex-shrink:0}.profile__coins-icon{color:var(--color-accent);line-height:1}.profile__coins-value{font-size:20px;font-weight:800;color:var(--color-accent);line-height:1}.profile__coins-label{font-size:9px;font-weight:700;letter-spacing:.08em;color:var(--color-accent);opacity:.8;text-transform:uppercase}.profile__phone-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px;background:color-mix(in srgb,var(--color-text) 7%,transparent);border-radius:var(--radius-md);font-size:14px;font-weight:500;color:var(--color-text);border:none;cursor:pointer;transition:opacity .15s}.profile__phone-btn:active{opacity:.7}.profile__phone-icon{font-size:16px}.profile__section{background:var(--color-bg-secondary);border-radius:var(--radius-lg);overflow:hidden}.profile__menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;background:none;border:none;cursor:pointer;text-align:left;transition:opacity .15s}.profile__menu-item:active{opacity:.7}.profile__menu-item+.profile__menu-item{border-top:1px solid color-mix(in srgb,var(--color-text) 8%,transparent)}.profile__menu-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.profile__menu-icon--teal{background:color-mix(in srgb,#2dd4bf 20%,transparent)}.profile__menu-icon--gray{background:color-mix(in srgb,var(--color-text) 12%,transparent)}.profile__menu-body{flex:1}.profile__menu-title{font-size:15px;font-weight:500;color:var(--color-text)}.profile__menu-sub{font-size:12px;color:var(--color-text-hint);margin-top:2px}.profile__menu-arrow{font-size:22px;color:var(--color-text-hint);line-height:1}.profile__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.profile__action{background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:none;padding:18px 12px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;font-size:13px;font-weight:500;color:var(--color-text);transition:opacity .15s}.profile__action:active{opacity:.7}.profile__action-icon{font-size:28px;line-height:1}.profile__menu-item--static{cursor:default}.profile__theme-btn{padding:6px 12px;border-radius:20px;background:color-mix(in srgb,var(--color-accent) 15%,transparent);color:var(--color-accent);font-size:12px;font-weight:600;border:none;cursor:pointer;white-space:nowrap;transition:opacity .15s}.profile__theme-btn:active{opacity:.7}.profile__topbar{display:flex;align-items:center;gap:12px;padding-bottom:4px}.profile__back{font-size:14px;font-weight:500;color:var(--color-link);background:none;border:none;padding:6px 0;cursor:pointer}.profile__topbar-title{font-size:17px;font-weight:700}.profile__loading,.profile__empty{text-align:center;padding:40px 16px;color:var(--color-text-hint);font-size:14px;display:flex;flex-direction:column;align-items:center;gap:12px}.profile__empty-icon{font-size:40px}.order-list{display:flex;flex-direction:column;gap:10px}.order-card{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:14px;display:flex;flex-direction:column;gap:10px}.order-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.order-card__id{font-size:14px;font-weight:700;display:block}.order-card__date{font-size:11px;color:var(--color-text-hint);margin-top:2px;display:block}.order-card__note{font-size:13px;color:var(--color-text-hint);font-style:italic}.order-card__delivery{font-size:13px;color:var(--color-text-hint)}.order-card__status{font-size:11px;font-weight:600;padding:3px 8px;border-radius:10px;white-space:nowrap}.status-pending{background:#eab3082e;color:#ca8a04}.status-confirmed{background:#3b82f62e;color:#3b82f6}.status-delivered{background:#22c55e2e;color:#16a34a}.status-cancelled{background:#ef44442e;color:#dc2626}.order-card__items{display:flex;flex-direction:column;gap:6px;border-top:1px solid color-mix(in srgb,var(--color-text) 8%,transparent);padding-top:8px}.order-item{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;align-items:center;font-size:13px}.order-item__name{font-weight:500}.order-item__attrs{font-size:11px;color:var(--color-text-hint)}.order-item__qty{color:var(--color-text-hint)}.order-item__price{font-weight:600;text-align:right;white-space:nowrap}.order-card__footer{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid color-mix(in srgb,var(--color-text) 8%,transparent);padding-top:8px}.order-card__total{font-size:14px;color:var(--color-accent)}.order-card__coins{font-size:12px;font-weight:600;color:var(--color-text-hint);white-space:nowrap}.order-card__coins--earned{color:var(--color-accent)}.product-page{display:flex;flex-direction:column;min-height:100%}.product-page--loading{padding:16px}.product-page__back{padding:12px 16px;color:var(--color-accent);font-size:15px;text-align:left}.product-page__skeleton{height:300px;background:var(--color-bg-secondary);border-radius:var(--radius-md);margin:0 16px}.product-page__img-wrap{width:100%;aspect-ratio:1 / 1;max-height:320px;overflow:hidden;background:var(--color-bg-secondary);flex-shrink:0}.product-page__img{width:100%;height:100%;object-fit:cover;display:block}.product-page__img-placeholder{width:100%;height:100%;background:color-mix(in srgb,var(--color-text) 8%,transparent)}.product-page__content{padding:16px;display:flex;flex-direction:column;gap:12px;flex:1}.product-page__category{font-size:12px;text-transform:uppercase;letter-spacing:.05em}.product-page__name{font-size:20px;font-weight:700;line-height:1.3}.product-page__desc{font-size:14px;line-height:1.6;color:var(--color-text-hint)}.attr-group{display:flex;flex-direction:column;gap:8px}.attr-group__label{font-size:13px;font-weight:600}.attr-group__options{display:flex;flex-wrap:wrap;gap:8px}.attr-chip{padding:6px 14px;border-radius:20px;background:var(--color-bg-secondary);color:var(--color-text);font-size:13px;font-weight:500;border:2px solid transparent;transition:border-color .15s,background .15s}.attr-chip.active{border-color:var(--color-accent);color:var(--color-accent)}.attr-chip.unavailable{opacity:.35;color:var(--color-text-hint)}.stock-badge{display:inline-block;font-size:13px;font-weight:600;padding:4px 10px;border-radius:8px;align-self:flex-start}.stock--critical{background:#ef44441f;color:#ef4444}.stock--low{background:#f973161f;color:#f97316}.stock--medium{background:#eab3081f;color:#ca8a04}.product-page__coins-hint{font-size:13px;color:var(--color-accent);opacity:.8;padding:0 2px}.product-page__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:4px;margin-top:auto}.product-page__price{font-size:22px;font-weight:700;color:var(--color-accent);white-space:nowrap}.btn-primary{flex:1;padding:14px;border-radius:var(--radius-md);background:var(--color-accent);color:#fff;font-size:15px;font-weight:600;transition:opacity .15s}.btn-primary:disabled{opacity:.5}.btn-secondary{flex:1;padding:14px;border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text);font-size:15px;font-weight:600}.btn-notify{flex:1;padding:14px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-accent) 18%,transparent);color:var(--color-accent);font-size:14px;font-weight:600;border:none;transition:opacity .15s}.btn-notify:disabled{opacity:.5}.btn-notify--active{background:var(--color-accent);color:#fff}.product-page__stepper-wrap{display:flex;align-items:center;gap:12px;flex:1;justify-content:flex-end}.qty-stepper{display:flex;align-items:center;background:var(--color-bg-secondary);border-radius:100px;padding:4px;gap:2px}.qty-stepper__btn{width:36px;height:36px;border-radius:50%;background:var(--color-bg);color:var(--color-text);font-size:20px;font-weight:400;display:flex;align-items:center;justify-content:center;line-height:1;transition:opacity .15s,background .15s}.qty-stepper__btn:active{background:color-mix(in srgb,var(--color-accent) 15%,var(--color-bg))}.qty-stepper__btn:disabled{opacity:.25;cursor:not-allowed}.qty-stepper__count{min-width:36px;text-align:center;font-size:16px;font-weight:700;color:var(--color-text)}.qty-stepper__cart-link{font-size:14px;font-weight:600;color:var(--color-accent);white-space:nowrap;background:none;border:none;padding:0;cursor:pointer}.tab-bar{display:flex;border-top:1px solid color-mix(in srgb,var(--color-text) 10%,transparent);background:var(--color-bg);padding-bottom:env(safe-area-inset-bottom,0);flex-shrink:0}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 0 8px;color:var(--color-text-hint);transition:color .15s}.tab-item.active{color:var(--color-accent)}.tab-icon{font-size:22px;line-height:1;position:relative;display:inline-block}.tab-icon--badge{display:inline-block}.badge{position:absolute;top:-4px;right:-8px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px}.tab-label{font-size:11px;font-weight:500}.app{display:flex;flex-direction:column;height:100%;overflow:hidden}.page-container{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}:root{--color-bg: var(--tg-theme-bg-color, #ffffff);--color-bg-secondary: var(--tg-theme-secondary-bg-color, #f4f4f5);--color-text: var(--tg-theme-text-color, #111111);--color-text-hint: var(--tg-theme-hint-color, #888888);--color-link: var(--tg-theme-link-color, #2196f3);--color-button: var(--tg-theme-button-color, #2196f3);--color-button-text: var(--tg-theme-button-text-color, #ffffff);--color-accent: #38bdf8;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);font-size:15px;line-height:1.5}.text-hint{color:var(--color-text-hint)}.text-accent{color:var(--color-accent)}button{cursor:pointer;border:none;background:none;font-family:inherit;font-size:inherit;color:inherit}input,textarea{font-family:inherit;font-size:inherit;background:var(--color-bg-secondary);color:var(--color-text);border:none;border-radius:var(--radius-sm);padding:10px 14px;outline:none;width:100%}input::placeholder{color:var(--color-text-hint)}
