:root{--tg-theme-bg-color: #ffffff;--tg-theme-text-color: #1a1a2e;--tg-theme-hint-color: #8e8e93;--tg-theme-link-color: #34d058;--tg-theme-button-color: #4ADE80;--tg-theme-button-text-color: #ffffff;--tg-theme-secondary-bg-color: #f5f5f7;--tg-theme-section-bg-color: #ffffff;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 24px;--shadow-card: 0 2px 12px rgba(0, 0, 0, .06);--shadow-elevated: 0 8px 30px rgba(0, 0, 0, .08);--transition: .3s cubic-bezier(.4, 0, .2, 1);--primary-gradient: linear-gradient(135deg, #7CEC4B 0%, #4ADE80 100%);--primary-start: #7CEC4B;--primary-end: #4ADE80;--color-protein: #60A5FA;--color-fats: #FB923C;--color-carbs: #A78BFA;--color-calories: #F472B6;--gap-xs: 4px;--gap-sm: 8px;--gap-md: 12px;--gap-lg: 16px;--gap-xl: 24px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:#fff;color:var(--tg-theme-text-color);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--tg-theme-hint-color);border-radius:2px}.card{background:var(--tg-theme-section-bg-color, var(--tg-theme-bg-color));border-radius:var(--radius-lg);padding:var(--gap-lg);box-shadow:var(--shadow-card)}.page{padding:var(--gap-lg);padding-bottom:calc(80px + env(safe-area-inset-bottom,0px));max-width:480px;margin:0 auto}.section-title{font-size:13px;font-weight:600;color:var(--tg-theme-hint-color);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--gap-sm);padding-left:var(--gap-xs)}.calorie-ring{display:flex;flex-direction:column;align-items:center;padding:var(--gap-xl) 0;position:relative}.calorie-ring__svg{transform:rotate(-90deg);filter:drop-shadow(0 4px 20px rgba(74,222,128,.3))}.calorie-ring__center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;margin-top:0}.calorie-ring__value{font-size:48px;font-weight:800;letter-spacing:-1px;line-height:1}.calorie-ring__label{font-size:12px;color:var(--tg-theme-hint-color);margin-top:4px;text-transform:uppercase;letter-spacing:.5px;font-weight:500}.macro-cards{display:flex;gap:var(--gap-md)}.macro-card{flex:1;background:#fff;border-radius:var(--radius-lg);padding:var(--gap-xl) var(--gap-md);text-align:center;box-shadow:var(--shadow-card);animation:fadeInUp .4s ease both}.macro-card:nth-child(1){animation-delay:.1s}.macro-card:nth-child(2){animation-delay:.2s}.macro-card:nth-child(3){animation-delay:.3s}.macro-card__label{font-size:11px;color:var(--tg-theme-hint-color);margin-bottom:var(--gap-xs);text-transform:uppercase;letter-spacing:.3px;font-weight:600}.macro-card__value{font-size:26px;font-weight:800}.macro-card__bar{height:4px;border-radius:2px;background:var(--tg-theme-secondary-bg-color);margin-top:var(--gap-sm);overflow:hidden}.macro-card__bar-fill{height:100%;border-radius:2px;transition:width var(--transition)}.week-calendar{display:flex;gap:var(--gap-xs);justify-content:space-between;margin-bottom:var(--gap-xl);background:#fff;border-radius:var(--radius-lg);padding:var(--gap-sm);box-shadow:var(--shadow-card)}.week-calendar__day{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--gap-sm) 0;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);border:none;background:transparent;color:var(--tg-theme-text-color)}.week-calendar__day:hover{transform:scale(1.05)}.week-calendar__day--active{background:var(--primary-gradient)!important;color:#fff!important;border-radius:var(--radius-md);box-shadow:0 4px 12px #4ade804d}.week-calendar__day--today{position:relative}.week-calendar__day--today:after{content:"";width:5px;height:5px;border-radius:50%;background:var(--primary-end);position:absolute;bottom:3px}.week-calendar__day--active.week-calendar__day--today:after{background:#fff}.week-calendar__day-name{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.week-calendar__day-num{font-size:16px;font-weight:700}.meal-category{margin-bottom:var(--gap-xl)}.meal-category__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--gap-md);padding-left:var(--gap-xs)}.meal-category__name{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--tg-theme-hint-color)}.meal-category__kcal{font-size:13px;color:var(--tg-theme-hint-color);font-weight:600}.meal-card{display:flex;align-items:stretch;gap:var(--gap-md);padding:var(--gap-md);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin-bottom:var(--gap-md);cursor:pointer;transition:transform var(--transition),box-shadow var(--transition);animation:fadeInUp .4s ease both}.meal-card:active{transform:scale(.98);box-shadow:0 1px 4px #0000000a}.meal-card__photo{width:100px;height:100px;border-radius:var(--radius-md);object-fit:cover;background:var(--tg-theme-secondary-bg-color);flex-shrink:0}.meal-card__photo--placeholder{display:flex;align-items:center;justify-content:center;width:100px;height:100px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--tg-theme-secondary-bg-color),#e8e8ed);flex-shrink:0;color:var(--tg-theme-hint-color)}.meal-card__info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:3px}.meal-card__top-row{display:flex;align-items:center;gap:var(--gap-sm)}.meal-card__weight-badge{font-size:11px;font-weight:700;color:var(--tg-theme-hint-color);background:var(--tg-theme-secondary-bg-color);padding:2px 8px;border-radius:10px}.meal-card__time{font-size:11px;color:var(--tg-theme-hint-color);margin-left:auto}.meal-card__name{font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meal-card__calories{display:flex;align-items:center;gap:4px;font-size:20px;font-weight:800;color:var(--color-calories)}.meal-card__calories svg{flex-shrink:0}.meal-card__calories-label{font-size:13px;font-weight:500;opacity:.7}.meal-card__macros{display:flex;gap:var(--gap-xs);margin-top:2px}.meal-card__macro{font-size:11px;font-weight:700;padding:2px 8px;border-radius:8px}.meal-card__macro--protein{color:var(--color-protein);background:#60a5fa1a}.meal-card__macro--fats{color:var(--color-fats);background:#fb923c1a}.meal-card__macro--carbs{color:var(--color-carbs);background:#a78bfa1a}.meal-card__chevron{display:flex;align-items:center;color:var(--tg-theme-hint-color);flex-shrink:0;opacity:.4}.demo-banner{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:var(--gap-sm);padding:6px var(--gap-lg);background:#fbbf24e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#1a1a2e;font-size:12px;font-weight:700;z-index:999;animation:fadeIn .3s ease}.demo-banner__text{letter-spacing:.5px}.demo-banner__close{background:none;border:none;color:#1a1a2e;font-size:14px;cursor:pointer;opacity:.6;padding:0 4px}.demo-banner__close:hover{opacity:1}.trial-countdown{display:flex;align-items:center;gap:var(--gap-sm);padding:var(--gap-md) var(--gap-lg);background:linear-gradient(135deg,var(--tg-theme-button-color),#6b5ce7);color:var(--tg-theme-button-text-color);border-radius:var(--radius-lg);font-size:14px;font-weight:500}.trial-countdown__icon{font-size:20px}.analysis-v2{min-height:100vh;background:#fff}.analysis-v2__hero{position:relative;width:100%;height:50vh;min-height:280px;max-height:420px;overflow:hidden}.analysis-v2__photo{width:100%;height:100%;object-fit:cover}.analysis-v2__photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f0f0f0,#e8e8e8)}.analysis-v2__photo-emoji{font-size:64px;opacity:.5}.analysis-v2__back{position:absolute;top:12px;left:12px;width:36px;height:36px;border-radius:50%;background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#1a1a2e;box-shadow:0 2px 8px #0000001a}.analysis-v2__menu-wrap{position:absolute;top:12px;right:12px}.analysis-v2__menu-btn{width:36px;height:36px;border-radius:50%;background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#1a1a2e;box-shadow:0 2px 8px #0000001a}.analysis-v2__dropdown{position:absolute;top:44px;right:0;background:#fff;border-radius:var(--radius-md);box-shadow:0 8px 24px #00000026;overflow:hidden;min-width:160px;z-index:50;animation:fadeIn .15s ease}.analysis-v2__dropdown-item{display:flex;align-items:center;gap:var(--gap-sm);width:100%;padding:12px 16px;border:none;background:none;font-size:14px;cursor:pointer;color:#1a1a2e}.analysis-v2__dropdown-item--danger{color:#ef4444}.analysis-v2__content{padding:var(--gap-lg) var(--gap-lg) var(--gap-xl);margin-top:-20px;background:#fff;border-radius:20px 20px 0 0;position:relative}.analysis-v2__date-pill{display:inline-block;padding:4px 12px;background:#0000000d;border-radius:12px;font-size:12px;color:var(--tg-theme-hint-color);margin-bottom:var(--gap-sm)}.analysis-v2__title{font-size:24px;font-weight:700;color:#1a1a2e;margin:0 0 var(--gap-md);line-height:1.2}.analysis-v2__portions-row{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md);margin-bottom:var(--gap-lg)}.analysis-v2__portions{display:flex;align-items:center;gap:0;border:1.5px solid #e5e7eb;border-radius:var(--radius-md);overflow:hidden}.analysis-v2__portion-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--primary-end);font-size:18px}.analysis-v2__portion-btn:disabled{opacity:.3;cursor:default}.analysis-v2__portion-value{padding:0 12px;font-size:14px;font-weight:600;white-space:nowrap}.analysis-v2__weight-pill{padding:6px 12px;background:#0000000a;border-radius:var(--radius-md);font-size:13px;color:var(--tg-theme-hint-color);white-space:nowrap}.analysis-v2__calories-section{margin-bottom:var(--gap-lg)}.analysis-v2__calories-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--gap-xs)}.analysis-v2__calories-left{display:flex;align-items:center;gap:var(--gap-xs)}.analysis-v2__calories-label{font-size:14px;color:var(--tg-theme-hint-color);font-weight:500}.analysis-v2__edit-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;border:1.5px solid #e5e7eb;border-radius:var(--radius-md);background:none;font-size:13px;color:var(--tg-theme-hint-color);cursor:pointer;transition:all .2s ease}.analysis-v2__edit-btn:hover{border-color:var(--primary-end);color:var(--primary-end)}.analysis-v2__calories-big{font-size:36px;font-weight:800;color:#1a1a2e;line-height:1}.analysis-v2__calories-unit{font-size:16px;font-weight:500;color:var(--tg-theme-hint-color);margin-left:4px}.analysis-v2__macros{display:flex;gap:var(--gap-sm);margin-bottom:var(--gap-lg)}.analysis-v2__macro{flex:1;display:flex;flex-direction:column;align-items:center;padding:10px 8px;border-radius:var(--radius-md);gap:2px}.analysis-v2__macro--protein{background:#60a5fa1a}.analysis-v2__macro--fats{background:#fb923c1a}.analysis-v2__macro--carbs{background:#a78bfa1a}.analysis-v2__macro-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.analysis-v2__macro--protein .analysis-v2__macro-label{color:#60a5fa}.analysis-v2__macro--fats .analysis-v2__macro-label{color:#fb923c}.analysis-v2__macro--carbs .analysis-v2__macro-label{color:#a78bfa}.analysis-v2__macro-value{font-size:16px;font-weight:700;color:#1a1a2e}.analysis-v2__macros-edit{display:flex;flex-direction:column;gap:var(--gap-md);margin-bottom:var(--gap-lg);padding:var(--gap-md);background:#00000005;border-radius:var(--radius-lg)}.analysis-v2__edit-macro{display:flex;align-items:center;justify-content:space-between}.analysis-v2__edit-macro-label{font-size:14px;font-weight:600;min-width:80px}.analysis-v2__edit-group{display:flex;align-items:center;gap:var(--gap-xs)}.analysis-v2__edit-input{width:80px;padding:6px 10px;border:1.5px solid #e5e7eb;border-radius:var(--radius-sm);font-size:15px;font-weight:600;text-align:right;background:#fff;transition:border-color .2s ease}.analysis-v2__edit-input:focus{outline:none;border-color:var(--primary-end)}.analysis-v2__edit-input--big{width:100px;font-size:20px}.analysis-v2__edit-unit{font-size:13px;color:var(--tg-theme-hint-color);min-width:24px}.analysis-v2__edit-actions{display:flex;gap:var(--gap-sm);justify-content:flex-end;margin-top:var(--gap-xs)}.analysis-v2__edit-cancel{padding:8px 20px;border:1.5px solid #e5e7eb;border-radius:var(--radius-md);background:none;font-size:14px;color:var(--tg-theme-hint-color);cursor:pointer}.analysis-v2__edit-save{padding:8px 20px;border:none;border-radius:var(--radius-md);background:var(--primary-gradient);color:#1a1a2e;font-size:14px;font-weight:600;cursor:pointer}.analysis-v2__edit-save:disabled{opacity:.5}.analysis-v2__recs{margin-bottom:var(--gap-lg);border:1.5px solid rgba(167,139,250,.2);border-radius:var(--radius-lg);overflow:hidden}.analysis-v2__recs-header{display:flex;align-items:center;gap:var(--gap-sm);width:100%;padding:12px 14px;background:#a78bfa0f;border:none;cursor:pointer;color:#1a1a2e}.analysis-v2__recs-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:linear-gradient(135deg,#a78bfa,#8b5cf6);color:#fff;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.3px}.analysis-v2__recs-title{flex:1;text-align:left;font-size:14px;font-weight:600}.analysis-v2__recs-body{padding:0 14px 14px;background:#a78bfa08}.analysis-v2__recs-bubble{padding:12px 14px;background:#a78bfa14;border-radius:4px 14px 14px;font-size:14px;line-height:1.5;color:#1a1a2e;white-space:pre-wrap}.analysis-v2__cta{display:flex;align-items:center;justify-content:center;gap:var(--gap-sm);width:100%;padding:14px;border:none;border-radius:var(--radius-lg);background:linear-gradient(135deg,#a78bfa,#8b5cf6);color:#fff;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 4px 16px #8b5cf64d;transition:transform .15s ease,box-shadow .15s ease}.analysis-v2__cta:active{transform:scale(.98);box-shadow:0 2px 8px #8b5cf633}.loading-screen{display:flex;align-items:center;justify-content:center;height:100%;font-size:16px;color:var(--tg-theme-hint-color)}.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--gap-md);padding:var(--gap-xl);text-align:center}.error-screen__title{font-size:16px;font-weight:600}.error-screen__btn{padding:var(--gap-sm) var(--gap-lg);background:var(--tg-theme-button-color);color:var(--tg-theme-button-text-color);border:none;border-radius:var(--radius-md);font-size:14px;cursor:pointer}.back-btn{display:flex;align-items:center;gap:var(--gap-xs);padding:var(--gap-sm) 0;background:none;border:none;color:var(--tg-theme-link-color);font-size:14px;cursor:pointer;margin-bottom:var(--gap-md)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:#ffffffd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:var(--gap-sm) 0;padding-bottom:calc(var(--gap-sm) + env(safe-area-inset-bottom,0px));z-index:100}.bottom-nav__item{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:var(--tg-theme-hint-color);font-size:10px;transition:color var(--transition);padding:var(--gap-xs) var(--gap-lg);position:relative;border:none;background:none;cursor:pointer}.bottom-nav__item--active{color:var(--primary-end)}.bottom-nav__item--active:after{content:"";position:absolute;top:-2px;width:5px;height:5px;border-radius:50%;background:var(--primary-end)}.bottom-nav__icon{font-size:20px;display:flex;align-items:center;justify-content:center}.bottom-nav__label{font-weight:600;letter-spacing:.2px}.profile-v2{padding:var(--gap-lg);min-height:100vh;background:#fff}.profile-v2__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--gap-lg)}.profile-v2__title{font-size:24px;font-weight:700;color:#1a1a2e;margin:0}.profile-v2__saved{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;background:#4ade8026;color:var(--primary-end);border-radius:var(--radius-md);font-size:12px;font-weight:600;animation:fadeIn .3s ease}.profile-v2__section{margin-bottom:var(--gap-xl)}.profile-v2__section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--gap-md)}.profile-v2__section-title{font-size:16px;font-weight:700;color:#1a1a2e;margin:0 0 var(--gap-md)}.profile-v2__section-header .profile-v2__section-title{margin-bottom:0}.profile-v2__recalc-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1.5px solid var(--primary-end);border-radius:var(--radius-md);background:none;color:var(--primary-end);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.profile-v2__recalc-btn:hover{background:#4ade801a}.profile-v2__recalc-btn:disabled{opacity:.5;cursor:default}.profile-v2__goal-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-md);margin-bottom:var(--gap-md)}.profile-v2__goal-card{padding:var(--gap-md);background:#00000005;border-radius:var(--radius-lg);cursor:pointer;transition:background .2s ease}.profile-v2__goal-card:hover{background:#0000000a}.profile-v2__goal-label{font-size:12px;color:var(--tg-theme-hint-color);margin-bottom:4px}.profile-v2__goal-value{font-size:16px;font-weight:700;color:#1a1a2e;display:flex;align-items:center;gap:6px}.profile-v2__pencil{color:var(--tg-theme-hint-color);opacity:.5}.profile-v2__goal-edit{display:flex;align-items:center;gap:4px}.profile-v2__goal-input{width:100%;padding:4px 8px;border:1.5px solid var(--primary-end);border-radius:var(--radius-sm);font-size:16px;font-weight:700;background:#fff;outline:none}.profile-v2__goal-unit{font-size:13px;color:var(--tg-theme-hint-color)}.profile-v2__recalc-result{padding:var(--gap-md);background:#4ade800f;border-radius:var(--radius-md);margin-bottom:var(--gap-md);animation:fadeIn .3s ease}.profile-v2__recalc-row{display:flex;justify-content:space-between;margin-bottom:var(--gap-xs);font-size:14px}.profile-v2__recalc-macros{display:flex;gap:var(--gap-md);font-size:13px;font-weight:600}.profile-v2__calorie-target{display:flex;justify-content:space-between;align-items:center;padding:var(--gap-md);background:#00000005;border-radius:var(--radius-md)}.profile-v2__calorie-target-label{font-size:14px;color:var(--tg-theme-hint-color)}.profile-v2__calorie-target-value{font-size:18px;font-weight:700;color:var(--color-calories)}.profile-v2__rows{background:#00000005;border-radius:var(--radius-lg);overflow:hidden}.profile-v2__row{display:flex;align-items:center;padding:14px var(--gap-md);cursor:pointer;transition:background .15s ease}.profile-v2__row:hover{background:#00000008}.profile-v2__row+.profile-v2__row{border-top:1px solid rgba(0,0,0,.05)}.profile-v2__row-emoji{font-size:18px;width:28px;text-align:center;flex-shrink:0}.profile-v2__row-label{flex:1;font-size:15px;color:#1a1a2e;margin-left:var(--gap-sm)}.profile-v2__row-value{font-size:15px;color:var(--tg-theme-hint-color);margin-right:var(--gap-xs)}.profile-v2__row-chevron{color:var(--tg-theme-hint-color);opacity:.4;flex-shrink:0}.profile-row{display:flex;justify-content:space-between;align-items:center;padding:var(--gap-sm) 0}.profile-row+.profile-row{border-top:1px solid rgba(128,128,128,.1)}.profile-row__label{font-size:14px;color:var(--tg-theme-hint-color)}.profile-row__value{font-size:14px;font-weight:600}.profile-field{margin-bottom:var(--gap-md)}.profile-field label{display:block;font-size:13px;color:var(--tg-theme-hint-color);margin-bottom:var(--gap-xs)}.profile-input{width:100%;padding:var(--gap-sm) var(--gap-md);border:1px solid rgba(128,128,128,.2);border-radius:var(--radius-md);font-size:15px;background:var(--tg-theme-bg-color);color:var(--tg-theme-text-color);outline:none;transition:border-color var(--transition)}.profile-input:focus{border-color:var(--primary-end)}.profile-chips{display:flex;flex-wrap:wrap;gap:var(--gap-xs)}.chip{padding:6px var(--gap-md);border:1.5px solid rgba(128,128,128,.15);border-radius:var(--radius-xl);font-size:13px;font-weight:600;background:transparent;color:var(--tg-theme-text-color);cursor:pointer;transition:all var(--transition);white-space:nowrap}.chip:hover{border-color:var(--primary-end)}.chip--active{background:var(--primary-gradient);color:#fff;border-color:transparent;box-shadow:0 2px 8px #4ade8040}.btn{padding:var(--gap-md) var(--gap-lg);border:none;border-radius:var(--radius-lg);font-size:15px;font-weight:700;cursor:pointer;transition:all var(--transition)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--primary-gradient);color:#fff;box-shadow:0 4px 16px #4ade804d}.btn--primary:active:not(:disabled){transform:scale(.97);box-shadow:0 2px 8px #4ade8033}.recalc-result{margin-top:var(--gap-md);padding-top:var(--gap-md);border-top:1px solid rgba(128,128,128,.1);animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes ringFill{0%{stroke-dashoffset:565}}.fab{position:fixed;bottom:calc(70px + env(safe-area-inset-bottom,0px));right:20px;width:60px;height:60px;border-radius:50%;background:var(--primary-gradient);color:#fff;border:none;font-size:28px;font-weight:300;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px #4ade8066;cursor:pointer;z-index:50;animation:scaleIn .3s ease;transition:transform .2s ease,box-shadow .2s ease}.fab:active{transform:scale(.92);box-shadow:0 2px 8px #0003}.modal-overlay{position:fixed;inset:0;background:#00000080;z-index:200;display:flex;align-items:flex-end;animation:fadeIn .2s ease}.modal-content{background:var(--tg-theme-bg-color);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--gap-lg);padding-bottom:calc(var(--gap-xl) + env(safe-area-inset-bottom,0px));width:100%;max-height:85vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--gap-lg)}.modal-header__title{font-size:18px;font-weight:700}.modal-header__close{width:32px;height:32px;border-radius:50%;border:none;background:var(--tg-theme-secondary-bg-color);color:var(--tg-theme-hint-color);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.modal-error{padding:var(--gap-sm) var(--gap-md);background:#e945601a;color:#e94560;border-radius:var(--radius-md);font-size:13px;margin-bottom:var(--gap-md)}.modal-section{margin-bottom:var(--gap-sm)}.modal-actions{display:flex;flex-direction:column;gap:var(--gap-sm)}.add-meal-btn{display:flex;align-items:center;gap:var(--gap-md);padding:var(--gap-md) var(--gap-lg);background:var(--tg-theme-section-bg-color, var(--tg-theme-bg-color));border:1px solid rgba(128,128,128,.15);border-radius:var(--radius-md);font-size:15px;color:var(--tg-theme-text-color);cursor:pointer;transition:background .15s ease}.add-meal-btn:active{background:var(--tg-theme-secondary-bg-color)}.add-meal-btn__icon{font-size:22px}.analyzing-screen{display:flex;flex-direction:column;align-items:center;gap:var(--gap-md);padding:var(--gap-xl) 0}.analyzing-screen__spinner{width:48px;height:48px;border-radius:50%;border:3px solid var(--tg-theme-secondary-bg-color);border-top-color:var(--tg-theme-button-color);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.analyzing-screen__text{font-size:16px;font-weight:600}.analyzing-screen__hint{font-size:13px;color:var(--tg-theme-hint-color)}.modal-result{text-align:center;animation:fadeIn .3s ease}.modal-result__dish{font-size:18px;font-weight:700;margin-bottom:var(--gap-md)}.modal-result__macros{display:flex;justify-content:space-around;margin-bottom:var(--gap-md)}.modal-result__macro{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;color:var(--tg-theme-hint-color)}.modal-result__macro span:first-child{font-size:20px;font-weight:700}.modal-result__weight{font-size:14px;color:var(--tg-theme-hint-color)}.btn--secondary{background:var(--tg-theme-secondary-bg-color);color:var(--tg-theme-text-color)}.modal-text-input{padding:var(--gap-sm) 0}.onboarding-page{min-height:100vh;display:flex;flex-direction:column;padding:var(--gap-lg);padding-bottom:calc(var(--gap-xl) + env(safe-area-inset-bottom,0px))}.onb-progress{height:4px;background:var(--tg-theme-secondary-bg-color);border-radius:2px;margin-bottom:var(--gap-xl);overflow:hidden}.onb-progress__bar{height:100%;background:var(--primary-gradient);border-radius:2px;transition:width .3s ease}.onb-step{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:fadeInUp .4s ease}.onb-step__title{font-size:24px;font-weight:800;text-align:center;margin-bottom:var(--gap-xl)}.onb-welcome{gap:var(--gap-md)}.onb-welcome__emoji{display:flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:50%;background:#4ade801a}.onb-welcome__title{font-size:26px;font-weight:800;margin:0}.onb-welcome__subtitle{font-size:15px;color:var(--tg-theme-hint-color);text-align:center;max-width:280px}.onb-cards{display:flex;gap:var(--gap-md);width:100%;max-width:320px}.onb-cards--vertical{flex-direction:column}.onb-card{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--gap-sm);padding:var(--gap-lg);background:var(--tg-theme-secondary-bg-color);border:2px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:border-color .2s ease,transform .15s ease;font-size:15px;color:var(--tg-theme-text-color)}.onb-card:active{transform:scale(.97)}.onb-card--active{border-color:var(--primary-end);background:#4ade800f}.onb-card--wide{flex-direction:row;justify-content:flex-start;padding:var(--gap-md) var(--gap-lg)}.onb-card__emoji{font-size:28px}.onb-slider-value{font-size:40px;font-weight:800;margin-bottom:var(--gap-md);color:var(--tg-theme-button-color)}.onb-slider{width:100%;max-width:300px;margin-bottom:var(--gap-xl);accent-color:var(--tg-theme-button-color);height:6px}.onb-btn{width:100%;max-width:300px;margin-top:auto;padding:14px 0;font-size:16px}.onb-calculating{gap:var(--gap-md)}.onb-calc-ring{position:relative;width:120px;height:120px}.onb-calc-ring__svg{width:120px;height:120px;transform:rotate(-90deg)}.onb-calc-ring__bg{fill:none;stroke:var(--tg-theme-secondary-bg-color);stroke-width:8}.onb-calc-ring__fill{fill:none;stroke:var(--tg-theme-button-color);stroke-width:8;stroke-linecap:round;transition:stroke-dasharray .1s ease}.onb-calc-ring__text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:24px;font-weight:700}.onb-calculating__hint{font-size:13px;color:var(--tg-theme-hint-color);text-align:center;max-width:260px}.onb-result{gap:var(--gap-lg);width:100%}.onb-result__plan{background:var(--tg-theme-secondary-bg-color);border-radius:var(--radius-lg);padding:var(--gap-lg);width:100%}.onb-result__kcal{display:flex;flex-direction:column;align-items:center;margin-bottom:var(--gap-md)}.onb-result__kcal-value{font-size:48px;font-weight:800;color:var(--color-calories)}.onb-result__kcal-label{font-size:14px;color:var(--tg-theme-hint-color)}.onb-result__macros{display:flex;justify-content:space-around}.onb-result__macro{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;color:var(--tg-theme-hint-color)}.onb-result__macro span:first-child{font-size:18px;font-weight:700}.paywall-page{min-height:100vh;display:flex;flex-direction:column;padding:var(--gap-lg);padding-bottom:calc(var(--gap-xl) + env(safe-area-inset-bottom,0px));animation:fadeIn .3s ease}.paywall-header{text-align:center;margin-bottom:var(--gap-lg)}.paywall-header__emoji{font-size:48px}.paywall-header__title{font-size:24px;font-weight:800;margin:var(--gap-sm) 0}.paywall-header__subtitle{font-size:14px;color:var(--tg-theme-hint-color)}.paywall-values{display:flex;flex-direction:column;gap:var(--gap-sm);margin-bottom:var(--gap-lg)}.paywall-value{display:flex;align-items:center;gap:var(--gap-sm);font-size:15px}.paywall-value__check{color:#34c759;font-weight:700;font-size:18px}.paywall-tariffs{display:flex;flex-direction:column;gap:var(--gap-sm);margin-bottom:var(--gap-lg)}.paywall-tariff{display:flex;flex-direction:column;padding:var(--gap-md) var(--gap-lg);background:#fff;border:2px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition);text-align:left;box-shadow:var(--shadow-card)}.paywall-tariff--active{border-color:var(--primary-end);transform:scale(1.02);box-shadow:0 4px 16px #4ade8033}.paywall-tariff__title{font-size:16px;font-weight:700}.paywall-tariff__desc{font-size:13px;color:var(--tg-theme-hint-color);margin-top:2px}.paywall-tariff__price{font-size:20px;font-weight:800;color:var(--tg-theme-button-color);margin-top:var(--gap-sm)}.paywall-tariff__duration{font-size:12px;color:var(--tg-theme-hint-color)}.paywall-actions{margin-top:auto;display:flex;flex-direction:column;gap:var(--gap-sm)}.paywall-btn{font-size:16px;padding:14px 0}.paywall-trial-link{background:none;border:none;color:var(--tg-theme-link-color, var(--tg-theme-button-color));font-size:14px;cursor:pointer;text-align:center;padding:var(--gap-sm)}
