:root{
  --green:#4a9c3f;        /* фирменный зелёный FatSecret */
  --green-d:#3c8434;
  --green-l:#e8f5e6;
  --carbs:#f5a623;        /* углеводы — оранжевый */
  --protein:#4a90d9;      /* белки — синий */
  --fat:#e05a6b;          /* жиры — красный */
  --sugar:#9b59b6;        /* сахар — фиолетовый */
  --bg:#eef1f3;
  --card:#ffffff;
  --ink:#1c2530;
  --muted:#8a97a5;
  --line:#e6eaee;
  --radius:16px;
  --shadow:0 1px 3px rgba(20,40,60,.08),0 1px 2px rgba(20,40,60,.04);
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bot:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Inter,sans-serif;
  background:var(--bg);color:var(--ink);font-size:15px;line-height:1.35;
  overflow:hidden;
}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select{font-family:inherit;font-size:15px}
.hidden{display:none!important}

/* ---------- экраны ---------- */
.screen{position:fixed;inset:0;display:none;flex-direction:column;background:var(--bg)}
.screen.active{display:flex}
.scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 12px 0}

/* ---------- топбар ---------- */
.topbar{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:calc(var(--safe-top) + 10px) 14px 10px;background:var(--green);color:#fff;
}
.topbar.sub{background:var(--green)}
.nav-btn{font-size:28px;line-height:1;color:#fff;width:40px;height:40px;border-radius:12px;transition:background .15s}
.nav-btn:hover,.nav-btn:focus-visible{background:rgba(255,255,255,.18);outline:none}
.date-title{flex:1;text-align:center;font-size:17px;font-weight:700;color:#fff;padding:8px;border-radius:12px;transition:background .15s}
.date-title:hover,.date-title:focus-visible{background:rgba(255,255,255,.14);outline:none}
.back{color:#fff;font-size:16px;font-weight:600;padding:8px 6px;border-radius:10px;transition:background .15s}
.back:hover,.back:focus-visible{background:rgba(255,255,255,.16);outline:none}
.sub-title{flex:1;text-align:center;font-weight:700;font-size:16px;color:#fff;padding-right:60px}
.sub-title span{opacity:.9}

/* ---------- сводка калорий ---------- */
.summary-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:12px}
.cal-row{display:flex;align-items:center;justify-content:space-between;text-align:center}
.cal-block{flex:1}
.cal-num{font-size:24px;font-weight:800;letter-spacing:-.5px}
.cal-lbl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-top:2px}
.cal-op{font-size:20px;color:var(--muted);font-weight:300;padding:0 2px}
.remain .cal-num{color:var(--green)}
.remain.over .cal-num{color:var(--fat)}
.cal-bar{height:8px;background:var(--line);border-radius:6px;overflow:hidden;margin:14px 0 6px}
.cal-bar-fill{height:100%;width:0;background:var(--green);border-radius:6px;transition:width .4s ease}
.cal-bar-fill.over{background:var(--fat)}
.macros{display:flex;gap:10px;margin-top:12px}
.macro{flex:1;text-align:center}
.macro-bar{height:6px;background:var(--line);border-radius:4px;overflow:hidden;margin-bottom:8px}
.macro-fill{height:100%;width:0;border-radius:4px;transition:width .4s ease}
.macro-lbl{font-size:12px;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:5px}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.macro-val{margin-top:3px;font-size:13px}
.macro-val b{font-size:15px}
.macro-val span{color:var(--muted);font-size:12px}

/* ---------- вода ---------- */
.water-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;margin-bottom:12px}
.water-head{display:flex;justify-content:space-between;align-items:center;font-size:14px;margin-bottom:10px}
.water-head b{color:#2a7fc0}
.water-btns{display:flex;gap:8px;margin-bottom:10px}
.water-btns button{flex:1;background:#eaf4fc;color:#2a7fc0;font-weight:700;padding:9px 0;border-radius:10px;font-size:14px;transition:background .15s,transform .1s}
.water-btns button:hover,.water-btns button:focus-visible{background:#d6ebfa;outline:none}
.water-btns button:active{transform:scale(.95)}
.water-btns button.minus{background:#f4eaea;color:#c0563f}
.water-btns button.minus:hover,.water-btns button.minus:focus-visible{background:#f0dcdc}
.water-bar{height:6px;background:var(--line);border-radius:4px;overflow:hidden}
.water-fill{height:100%;width:0;background:#4aa3e0;border-radius:4px;transition:width .4s}

/* ---------- приёмы ---------- */
.meal{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;overflow:hidden}
.meal-head{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line)}
.meal-ic{font-size:20px}
.meal-info{flex:1;min-width:0}
.meal-name{font-weight:700;font-size:15px}
.meal-macros{font-size:12px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.meal-kcal{color:var(--ink);font-size:14px;font-weight:700}
/* свайп-влево для удаления: обёртка с красным фоном + двигающийся ряд */
.item-wrap{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.item-wrap:last-child{border-bottom:none}
.item-del-bg{position:absolute;inset:0;background:var(--fat);display:flex;align-items:center;justify-content:flex-end;gap:6px;padding-right:22px;color:#fff;font-weight:700;font-size:14px}
.item{display:flex;align-items:center;gap:10px;padding:11px 16px;transition:background .12s;width:100%;text-align:left;position:relative;background:var(--card);touch-action:pan-y}
.item.swiping{transition:none}
.item.removing{transition:transform .2s ease, opacity .2s ease;transform:translateX(-100%);opacity:0}
.item:hover,.item:focus-visible{background:#f7faf6;outline:none}
.item:active{background:#eef5ec}
.item-main{flex:1;min-width:0}
.item-name{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item-sub{font-size:12px;color:var(--muted);margin-top:1px}
.item-kcal{font-size:14px;font-weight:600;color:var(--ink)}
.add-row{display:flex;align-items:center;gap:8px;padding:12px 16px;color:var(--green);font-weight:600;font-size:14px;width:100%;text-align:left;transition:background .12s}
.add-row:hover,.add-row:focus-visible{background:var(--green-l);outline:none}
.add-row .plus{font-size:18px;font-weight:700;width:22px;height:22px;border-radius:50%;background:var(--green-l);display:flex;align-items:center;justify-content:center}

/* ---------- нижняя панель ---------- */
.tabbar{
  display:flex;align-items:center;justify-content:space-around;position:relative;
  background:var(--card);border-top:1px solid var(--line);
  padding:8px 0 calc(var(--safe-bot) + 8px);box-shadow:0 -1px 4px rgba(0,0,0,.04);
}
.tab{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--muted);font-size:11px;padding:4px 22px;border-radius:12px;transition:color .15s,background .15s}
.tab .ic{font-size:20px}
.tab:hover,.tab:focus-visible{color:var(--green);background:var(--green-l);outline:none}
.fab{
  width:60px;height:60px;border-radius:50%;background:var(--green);color:#fff;font-size:26px;
  display:flex;align-items:center;justify-content:center;margin-top:-26px;
  box-shadow:0 4px 12px rgba(74,156,63,.45);transition:transform .12s,background .15s;
}
.fab:hover,.fab:focus-visible{background:var(--green-d);outline:none}
.fab:active{transform:scale(.92)}

/* ---------- поиск ---------- */
.search-box{padding:10px 12px;background:var(--green)}
.search-box input{
  width:100%;padding:12px 14px;border-radius:12px;border:none;background:#fff;
  box-shadow:var(--shadow);outline:none;
}
.search-box input:focus{box-shadow:0 0 0 3px rgba(255,255,255,.5)}
.results{display:flex;flex-direction:column;gap:1px;background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.result{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line);width:100%;text-align:left;transition:background .12s}
.result:last-child{border-bottom:none}
.result:hover,.result:focus-visible{background:var(--green-l);outline:none}
.result:active{background:#e0efdc}
.result-main{flex:1;min-width:0}
.result-name{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.result-sub{font-size:12px;color:var(--muted);margin-top:2px}
.result-kcal{text-align:right;font-size:13px;color:var(--muted);white-space:nowrap}
.result-kcal b{display:block;font-size:15px;color:var(--ink)}
.result-src{font-size:10px;padding:1px 6px;border-radius:6px;background:var(--line);color:var(--muted);margin-left:6px}
.result-src.codex{background:#efe6fb;color:#7b46c4}
.result-src.off{background:#e6f0fb;color:#3a7bc0}
.empty{text-align:center;color:var(--muted);padding:32px 16px}
.synth-btn{margin-top:14px;background:#efe6fb;color:#7b46c4;font-weight:700;padding:12px 18px;border-radius:12px;transition:background .15s}
.synth-btn:hover,.synth-btn:focus-visible{background:#e3d3f7;outline:none}

/* ---------- сворачивание приёма ---------- */
.meal-head{cursor:pointer;user-select:none}
.meal-chevron{font-size:13px;color:var(--muted);transition:transform .2s;margin-left:2px}
.meal.collapsed .meal-chevron{transform:rotate(-90deg)}
.meal.collapsed .item-wrap,.meal.collapsed .add-row{display:none}
.meal.collapsed .meal-head{border-bottom:none}

/* ---------- рекомендации ИИ ---------- */
.rec-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;margin-bottom:12px}
.rec-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rec-title{font-weight:700;font-size:15px}
.rec-btn{background:#efe6fb;color:#7b46c4;font-weight:700;padding:8px 16px;border-radius:10px;font-size:13px;transition:background .15s}
.rec-btn:hover,.rec-btn:focus-visible{background:#e3d3f7;outline:none}
.rec-btn:disabled{opacity:.6;cursor:default}
.rec-body{margin-top:12px}
.rec-empty{color:var(--muted);font-size:13px}
.rec-summary{font-size:14px;font-weight:600;color:var(--ink);background:var(--green-l);border-radius:10px;padding:10px 12px;margin-bottom:10px}
.rec-tip{display:flex;gap:8px;font-size:13px;color:var(--ink);padding:7px 0;border-bottom:1px solid var(--line);line-height:1.4}
.rec-tip:last-child{border-bottom:none}
.rec-tip::before{content:"→";color:var(--green);font-weight:700;flex-shrink:0}

/* ---------- цели (опросник) ---------- */
.goals-section{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;margin-bottom:12px}
.gs-title{font-weight:700;font-size:14px;margin-bottom:12px}
.gs-hint{font-weight:400;color:var(--muted);font-size:12px}
.preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.theme-grid{grid-template-columns:1fr}
.preset{background:#f4f6f7;border:2px solid transparent;color:var(--ink);font-weight:600;font-size:14px;padding:14px 8px;border-radius:12px;transition:all .15s}
.preset:hover,.preset:focus-visible{background:var(--green-l);outline:none}
.preset.active{background:var(--green-l);border-color:var(--green);color:var(--green-d)}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.chip{background:#f4f6f7;color:#4a5563;font-size:13px;padding:8px 12px;border-radius:20px;border:1.5px solid transparent;transition:all .15s}
.chip:hover,.chip:focus-visible{background:#eaeef0;outline:none}
.chip.active{background:var(--green-l);border-color:var(--green);color:var(--green-d);font-weight:600}
#gNote{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:11px;outline:none;resize:vertical;font-size:14px;transition:border-color .15s,box-shadow .15s}
#gNote:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-l)}
.goals-form{background:transparent;padding:0}
.goals-form label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}
.goals-form label:last-of-type{border-bottom:none}
.goals-form input{width:110px;text-align:right;padding:9px 12px;border:1px solid var(--line);border-radius:10px;outline:none;transition:border-color .15s,box-shadow .15s}
.goals-form input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-l)}
.primary-btn{width:100%;background:var(--green);color:#fff;font-weight:700;padding:14px;border-radius:12px;font-size:15px;margin:16px 0;transition:background .15s,transform .1s}
.primary-btn:hover,.primary-btn:focus-visible{background:var(--green-d);outline:none}
.primary-btn:active{transform:scale(.98)}
.primary-btn:disabled{background:#b9d3b4;cursor:default}

/* ---------- нижние листы (sheets) ---------- */
.sheet-wrap{position:fixed;inset:0;background:rgba(20,30,40,.45);display:none;align-items:flex-end;z-index:50;opacity:0;transition:opacity .2s}
.sheet-wrap.open{display:flex;opacity:1}
.sheet{
  width:100%;background:var(--card);border-radius:22px 22px 0 0;padding:8px 18px calc(var(--safe-bot) + 20px);
  transform:translateY(100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);max-height:90vh;overflow-y:auto;
}
.sheet.tall{min-height:60vh}
.sheet-wrap.open .sheet{transform:translateY(0)}
.sheet-grab{width:40px;height:5px;background:#d3dae0;border-radius:3px;margin:6px auto 14px}
.portion-name{font-size:19px;font-weight:800;margin-bottom:2px}
.portion-per100{font-size:12px;color:var(--muted);margin-bottom:16px}
.portion-row{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.portion-row label{width:70px;color:var(--muted);font-size:14px}
.portion-row input{flex:1;padding:11px 13px;border:1px solid var(--line);border-radius:11px;outline:none;transition:border-color .15s,box-shadow .15s;min-width:0}
.portion-row input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-l)}
.portion-row select{flex:1;padding:11px 13px;border:1px solid var(--line);border-radius:11px;outline:none;background:#fff;transition:border-color .15s}
.portion-row select:focus{border-color:var(--green)}
.unit{color:var(--muted)}
.portion-calc{background:var(--green-l);border-radius:12px;padding:12px 14px;font-size:13px;color:var(--green-d);margin-bottom:8px;font-weight:600}
.sheet-actions{display:flex;gap:10px;margin-top:14px}
.sheet-actions .primary-btn{margin:0}
.ghost-btn{flex:1;background:var(--line);color:var(--ink);font-weight:600;padding:14px;border-radius:12px;transition:background .15s}
.ghost-btn:hover,.ghost-btn:focus-visible{background:#dce2e7;outline:none}
.danger-btn{flex:1;background:#fbe9e9;color:#d0402f;font-weight:700;padding:14px;border-radius:12px;transition:background .15s}
.danger-btn:hover,.danger-btn:focus-visible{background:#f6d8d8;outline:none}
.sheet-actions .primary-btn{flex:1}

/* ---------- разбор фото ---------- */
.photo-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.photo-head select{padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.photo-status{font-size:13px;color:var(--muted);padding:8px 0 12px;text-align:center}
.photo-status.err{color:var(--fat)}
.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--green-l);border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-3px;margin-right:6px}
@keyframes spin{to{transform:rotate(360deg)}}
.photo-items{display:flex;flex-direction:column;gap:8px}
.pi{display:flex;align-items:center;gap:10px;background:#f7faf6;border-radius:12px;padding:10px 12px}
.pi-main{flex:1;min-width:0}
.pi-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pi-kcal{font-size:12px;color:var(--muted);margin-top:1px}
.pi-amt{width:64px;padding:8px;border:1px solid var(--line);border-radius:9px;text-align:right;outline:none}
.pi-amt:focus{border-color:var(--green)}
.pi-unit{font-size:12px;color:var(--muted);width:16px}
.pi-del{color:#c0563f;font-size:18px;width:28px;height:28px;border-radius:8px;transition:background .12s}
.pi-del:hover,.pi-del:focus-visible{background:#f6d8d8;outline:none}
.photo-total{margin-top:14px;padding:12px 14px;background:var(--green-l);border-radius:12px;font-weight:700;color:var(--green-d);text-align:center;font-size:14px}

/* ---------- тост ---------- */
.toast{
  position:fixed;left:50%;bottom:calc(var(--safe-bot) + 90px);transform:translateX(-50%) translateY(20px);
  background:#1c2530;color:#fff;padding:11px 18px;border-radius:12px;font-size:14px;font-weight:600;
  opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:100;max-width:88%;text-align:center;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

.foot-space{height:20px}

/* ================= ТЁМНАЯ ТЕМА ================= */
:root[data-theme="dark"]{
  --bg:#17212b;          /* фон как в Telegram dark */
  --card:#232e3c;
  --ink:#e9edf0;
  --muted:#8896a4;
  --line:#2b3a48;
  --green-l:#20372a;     /* тёмный зелёный тинт */
  --shadow:0 1px 3px rgba(0,0,0,.3),0 1px 2px rgba(0,0,0,.2);
}
:root[data-theme="dark"] .search-box input{background:#2b3a48;color:var(--ink)}
:root[data-theme="dark"] .search-box input::placeholder{color:#8896a4}
:root[data-theme="dark"] .water-btns button{background:#1c3247;color:#7fc0f0}
:root[data-theme="dark"] .water-btns button:hover,:root[data-theme="dark"] .water-btns button:focus-visible{background:#244056}
:root[data-theme="dark"] .water-btns button.minus{background:#3a2626;color:#e0907f}
:root[data-theme="dark"] .water-head b{color:#7fc0f0}
:root[data-theme="dark"] .preset,:root[data-theme="dark"] .chip{background:#2b3a48;color:#c7d1da}
:root[data-theme="dark"] .preset:hover,:root[data-theme="dark"] .chip:hover,
:root[data-theme="dark"] .preset:focus-visible,:root[data-theme="dark"] .chip:focus-visible{background:#314354}
:root[data-theme="dark"] .portion-row input,:root[data-theme="dark"] .portion-row select,
:root[data-theme="dark"] .goals-form input,:root[data-theme="dark"] #gNote,
:root[data-theme="dark"] .pi-amt{background:#2b3a48;color:var(--ink);border-color:#334656}
:root[data-theme="dark"] .pi{background:#1c2833}
:root[data-theme="dark"] .item:hover,:root[data-theme="dark"] .item:focus-visible{background:#2a3844}
:root[data-theme="dark"] .item:active{background:#31424f}
:root[data-theme="dark"] .result:hover,:root[data-theme="dark"] .result:focus-visible,
:root[data-theme="dark"] .add-row:hover,:root[data-theme="dark"] .add-row:focus-visible,
:root[data-theme="dark"] .tab:hover,:root[data-theme="dark"] .tab:focus-visible{background:#243447}
:root[data-theme="dark"] .add-row .plus,:root[data-theme="dark"] .synth-btn{background:#332a44}
:root[data-theme="dark"] .rec-btn,:root[data-theme="dark"] .synth-btn{background:#332a44;color:#c9a7f0}
:root[data-theme="dark"] .result-src{background:#2b3a48;color:#8896a4}
:root[data-theme="dark"] .ghost-btn{background:#2b3a48;color:var(--ink)}

/* блок «Отчёт дня в чат» в целях */
.report-row{display:flex;flex-direction:column;gap:12px;margin-bottom:8px}
.report-toggle{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink)}
.report-toggle input{width:20px;height:20px;accent-color:var(--green)}
.report-time{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink)}
.report-time input{font-size:15px;padding:6px 10px;border:1.5px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink)}
#reportNow{margin-top:12px;width:100%}

/* блок «Доступ и друзья» + пейволл */
.access-status{font-size:14px;color:var(--ink);margin-bottom:12px;padding:10px 12px;background:var(--green-l);border-radius:12px}
.access-status .expired{color:#e04e4e;font-weight:700}
.plan-grid{display:flex;gap:10px}
.plan-btn{flex:1;position:relative;background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:14px 10px;display:flex;flex-direction:column;align-items:center;gap:4px;transition:all .15s}
.plan-btn b{font-size:15px;color:var(--ink)}
.plan-btn span{font-size:15px;color:var(--green-d);font-weight:700}
.plan-btn.year{border-color:var(--green);background:var(--green-l)}
.plan-btn.year em{position:absolute;top:-9px;right:8px;font-style:normal;font-size:10px;font-weight:700;background:var(--green);color:#fff;padding:2px 7px;border-radius:8px}
.plan-btn:active{transform:scale(.97)}
.invite-box{margin-top:16px}
.ref-stat{font-size:13px;color:var(--muted);margin:8px 0}
#inviteCopy{width:100%}

.paywall{position:fixed;inset:0;z-index:100;background:rgba(15,20,28,.55);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:22px}
.paywall.hidden{display:none}
.paywall-card{background:var(--card);border-radius:24px;padding:26px 22px;max-width:420px;width:100%;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.paywall-emoji{font-size:44px;margin-bottom:6px}
.paywall-card h2{font-size:21px;color:var(--ink);margin-bottom:8px}
.paywall-card p{font-size:14px;color:var(--muted);line-height:1.5;margin-bottom:18px}
.paywall-card .plan-grid{margin-bottom:2px}

/* дельта веса в целях */
.weight-delta{margin-top:10px;font-size:14px;color:var(--green-d);font-weight:600}
.weight-delta:empty{display:none}
