:root{color-scheme:light dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif,"Apple Color Emoji","Segoe UI Emoji";--bg: var(--tg-theme-bg-color, #f3f5f7);--text: var(--tg-theme-text-color, #15202b);--hint: var(--tg-theme-hint-color, #657786);--link: var(--tg-theme-link-color, #1982fc);--button: var(--tg-theme-button-color, #1982fc);--button-text: var(--tg-theme-button-text-color, #ffffff);--card: color-mix(in srgb, var(--bg) 72%, white 28%);--card-strong: color-mix(in srgb, var(--bg) 45%, white 55%);--border: color-mix(in srgb, var(--text) 14%, transparent);--shadow: 0 14px 36px rgba(15, 23, 42, .08);--danger-bg: #ffe2df;--danger-text: #9f1d1d;--warn-text: #946200;background:radial-gradient(circle at top,rgba(25,130,252,.12),transparent 38%),linear-gradient(180deg,color-mix(in srgb,var(--bg) 92%,white 8%),var(--bg));color:var(--text)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-width:320px;background:transparent;color:var(--text)}button,input,select,textarea{font:inherit}button,.meal-card{min-height:44px;border:0;border-radius:18px;padding:13px 16px;background:var(--button);color:var(--button-text);font-weight:600;cursor:pointer;transition:transform .15s ease,opacity .15s ease,background .15s ease}button:disabled{cursor:default;opacity:.6}button.secondary,.search-result,.selected-result,.segmented-control__item{background:color-mix(in srgb,var(--card-strong) 70%,transparent);color:var(--text)}button.ghost{background:var(--danger-bg);color:var(--danger-text)}input,select,textarea{width:100%;margin-top:8px;border:1px solid var(--border);border-radius:16px;padding:13px 14px;background:color-mix(in srgb,var(--card-strong) 88%,transparent);color:var(--text)}textarea{min-height:112px;resize:vertical}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-shell__content{flex:1;padding-bottom:calc(108px + env(safe-area-inset-bottom))}.page-shell{width:100%;max-width:680px;margin:0 auto;padding:18px 16px 32px;display:grid;gap:16px}.page-header h1,.page-shell h1,.page-shell h2{margin:0}.page-content,.stack{display:grid;gap:14px}.stack--sm{gap:10px}.card,.hero-card,.chart-card,.state-card,.modal-card{border:1px solid var(--border);border-radius:24px;background:var(--card);box-shadow:var(--shadow)}.card,.chart-card,.state-card{padding:18px}.card--dense{padding:16px}.card--processing,.card--success{background:color-mix(in srgb,var(--card-strong) 86%,transparent)}.hero-card{padding:20px;background:linear-gradient(140deg,rgba(25,130,252,.16),transparent 55%),var(--card)}.hero-card__top,.section-head,.row-actions,.inline-meta,.item-head,.item-card__head,.modal-card__head,.chart-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.hero-card__top h1{margin-top:6px;font-size:30px;line-height:1.05}.eyebrow{margin:0;color:var(--hint);font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.hero-card__stats,.summary-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}.summary-tile{padding:14px;border-radius:18px;background:color-mix(in srgb,var(--card-strong) 88%,transparent)}.summary-tile span,.hero-card__stats span,.field span,.upload-card span{display:block;color:var(--hint);font-size:13px;margin-bottom:6px}.summary-tile strong,.hero-card__stats strong{font-size:18px}.field-hint,.warning-text,.error-text,.page-shell p{margin:0;line-height:1.45}.field-hint{color:var(--hint);font-size:14px}.warning-text{color:var(--warn-text)}.error-text{color:var(--danger-text)}.accent-button{background:linear-gradient(135deg,var(--button),color-mix(in srgb,var(--button) 76%,white 24%));color:var(--button-text)}.accent-button--full{width:100%}.bottom-nav{position:fixed;left:50%;bottom:12px;z-index:20;transform:translate(-50%);width:min(680px,calc(100% - 20px));padding:10px 10px calc(10px + env(safe-area-inset-bottom));border:1px solid var(--border);border-radius:26px;background:color-mix(in srgb,var(--card) 90%,transparent);box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.bottom-nav a{text-decoration:none}.bottom-nav__item{min-height:58px;border-radius:16px;color:var(--hint);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:8px 6px;font-size:12px;font-weight:600;transition:background .15s ease,color .15s ease,transform .15s ease}.bottom-nav__item.is-active{background:color-mix(in srgb,var(--button) 12%,transparent);color:var(--button)}.bottom-nav__item--accent{background:var(--button);color:var(--button-text);border-radius:18px;box-shadow:0 10px 24px #1982fc38}.bottom-nav__icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;line-height:1}.bottom-nav__label{line-height:1.1}.bottom-nav__item svg{display:block}.bottom-nav__item--accent.is-active{background:color-mix(in srgb,var(--button) 92%,white 8%);color:var(--button-text)}.macro-progress{display:grid;gap:8px}.macro-progress__head,.macro-progress__meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.macro-progress__over{color:var(--warn-text)}.progress-bar{overflow:hidden;height:10px;border-radius:999px;background:color-mix(in srgb,var(--card-strong) 82%,transparent)}.progress-bar__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--button),color-mix(in srgb,var(--button) 68%,white 32%))}.progress-bar__fill.is-over{background:linear-gradient(90deg,#ef9a48,#efc84a)}.meal-card{width:100%;padding:16px;text-align:left;background:color-mix(in srgb,var(--card-strong) 88%,transparent);color:var(--text)}.meal-card__top,.meal-card__macros,.item-card__grid,.item-card__meta,.chart-axis,.segmented-control{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.meal-card__top p,.item-card__head p,.inline-banner p{margin-top:4px}.meal-card__value{font-size:18px;font-weight:700}.item-card{padding:16px;border-radius:20px;background:color-mix(in srgb,var(--card-strong) 88%,transparent)}.item-card__weight{margin:8px 0;font-size:20px;font-weight:700}.pill{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--button) 12%,transparent);color:var(--text);font-size:13px;font-weight:600}.edit-panel,.totals-box,.inline-banner{padding:14px;border-radius:18px;background:color-mix(in srgb,var(--card-strong) 80%,transparent)}.field--compact{flex:1 1 150px}.field--compact input{margin-top:6px}.search-result,.selected-result{width:100%;text-align:left}.selected-result{outline:2px solid color-mix(in srgb,var(--button) 48%,transparent)}.upload-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.upload-card{display:grid;gap:8px;padding:16px;border:1px dashed var(--border);border-radius:18px;background:color-mix(in srgb,var(--card-strong) 76%,transparent)}.upload-card input{margin-top:0;padding:0;border:0;background:transparent}.media-hint-list,.history-list{display:grid;gap:10px}.date-switcher{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:8px 0}.date-switcher__current{min-width:0;text-align:center}.date-switcher__current strong{display:block;font-size:16px;line-height:1.2}.date-switcher__arrow,.date-switcher__calendar{min-width:44px;min-height:44px;padding:0;border-radius:14px;display:inline-flex;align-items:center;justify-content:center}.date-switcher__arrow{background:color-mix(in srgb,var(--card-strong) 85%,transparent);color:var(--text)}.date-switcher__arrow:disabled{opacity:.42;color:var(--hint)}.date-switcher__calendar{background:color-mix(in srgb,var(--button) 14%,transparent);color:var(--button)}.date-switcher__native-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.modal-backdrop{position:fixed;inset:0;z-index:50;padding:18px;background:#0f172a6b;display:flex;align-items:flex-end}.modal-card{width:100%;max-width:680px;margin:0 auto;padding:18px}.modal-card--compact{max-width:420px}.modal-card--editor{max-height:min(88vh,920px);overflow-y:auto}.list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0}.list-row+.list-row{border-top:1px solid var(--border)}.list-row__meta{display:grid;justify-items:end;gap:4px;text-align:right}.state-card{display:grid;gap:10px;justify-items:start}.state-card--error{border-color:color-mix(in srgb,var(--danger-text) 22%,transparent)}.spinner{width:36px;height:36px;border-radius:50%;border:3px solid color-mix(in srgb,var(--button) 22%,transparent);border-top-color:var(--button);animation:spin .9s linear infinite}.chart-svg{width:100%;height:180px;margin-top:14px;color:var(--button)}.chart-axis{margin-top:10px;color:var(--hint);font-size:12px}.segmented-control{padding:4px;border-radius:999px;background:color-mix(in srgb,var(--card-strong) 92%,transparent)}.segmented-control__item{min-height:40px;padding:8px 14px;border-radius:999px}.segmented-control__item.is-active{background:var(--button);color:var(--button-text)}.voice-recorder{display:grid;gap:12px;padding:16px;border:1px dashed var(--border);border-radius:18px;background:color-mix(in srgb,var(--card-strong) 76%,transparent)}.voice-recorder button,.voice-recorder .upload-card{width:100%}.voice-recorder__preview{display:grid;gap:12px}.voice-recorder__audio{width:100%}.upload-card--compact{padding:14px}.pill--recording{background:color-mix(in srgb,var(--danger-text) 12%,transparent);color:var(--danger-text)}.toast-stack{position:fixed;left:50%;bottom:calc(110px + env(safe-area-inset-bottom));z-index:60;width:min(520px,calc(100% - 24px));transform:translate(-50%);display:grid;gap:8px}.toast{padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:color-mix(in srgb,var(--card) 92%,transparent);box-shadow:var(--shadow)}.toast--success{border-color:color-mix(in srgb,#0f8a4b 22%,transparent)}.toast--error{border-color:color-mix(in srgb,var(--danger-text) 22%,transparent)}.toast--info{border-color:color-mix(in srgb,var(--button) 22%,transparent)}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:640px){.hero-card__stats,.summary-grid,.upload-grid{grid-template-columns:minmax(0,1fr)}.bottom-nav__item{font-size:11px;min-height:56px}.date-switcher{grid-template-columns:44px minmax(0,1fr) 44px 44px}.date-switcher__current strong{font-size:15px}}
