@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{--bg:#f4f7ff;--surface:#fff;--surface-soft:#eef3ff;--text:#0f172a;--muted:#475569;--line:#d2ddef;--accent-1:#2452e8;--accent-2:#ff7d2d;--danger:#dc2626;--shadow-soft:0 10px 40px #193e8a14;--shadow-card:0 2px 4px #1118270a, 0 12px 28px #12285e1c;--shadow-float:0 12px 24px #11182717, 0 3px 9px #11182714}:root[data-theme=dark]{--bg:#080f1f;--surface:#121d36;--surface-soft:#18284c;--text:#e8efff;--muted:#9fb0d4;--line:#2a3d66;--accent-1:#6ea3ff;--accent-2:#ff9d4b;--danger:#f87171;--shadow-soft:0 16px 38px #02081873;--shadow-card:0 2px 6px #0003, 0 14px 26px #01051180;--shadow-float:0 10px 18px #00000047, 0 4px 10px #0003}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{background:radial-gradient(circle at 9% 10%, color-mix(in oklab, var(--accent-1), transparent 76%) 0, transparent 35%), radial-gradient(circle at 95% 3%, color-mix(in oklab, var(--accent-2), transparent 82%) 0, transparent 36%), linear-gradient(145deg, var(--bg), color-mix(in oklab, var(--bg), #000 6%));color:var(--text);min-height:100dvh;font-family:Plus Jakarta Sans,sans-serif}button,input,select{font:inherit}.app-shell{width:min(460px,100%);min-height:100dvh;padding:14px 12px calc(18px + env(safe-area-inset-bottom));gap:12px;margin:0 auto;display:grid}.topbar{z-index:20;background:color-mix(in oklab, var(--bg), transparent 16%);border:1px solid color-mix(in oklab, var(--line), transparent 10%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-float);border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:8px 8px 10px;display:flex;position:sticky;top:0}.topbar-copy{gap:6px;display:grid}.topbar-actions{gap:8px;display:flex}.date-pill{border:1px solid var(--line);background:color-mix(in oklab, var(--accent-1), var(--surface) 88%);width:fit-content;color:color-mix(in oklab, var(--text), var(--accent-1) 18%);border-radius:999px;padding:5px 10px;font-size:.74rem;display:inline-flex}h1{letter-spacing:-.035em;margin:0;font-size:clamp(1.32rem,6vw,1.7rem)}h2,h3{margin:0}p{color:var(--muted);margin:4px 0 0}.card{background:linear-gradient(160deg, var(--surface), color-mix(in oklab, var(--surface), var(--accent-1) 4%));border:1px solid var(--line);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;padding:14px;position:relative}.card:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 1px 1px #ffffff73}.day-nav{box-shadow:var(--shadow-float);justify-content:space-between;align-items:center;gap:8px;display:flex}.day-display{text-align:center;justify-items:center;display:grid}.day-display strong{font-size:1.08rem}.day-display span{color:var(--muted);text-transform:capitalize;font-size:.78rem}.page-switch{border:1px solid var(--line);background:color-mix(in oklab, var(--surface-soft), transparent 10%);box-shadow:var(--shadow-float);border-radius:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:4px;display:grid}.tab-btn{border:1px solid var(--line);background:linear-gradient(140deg, var(--surface), var(--surface-soft));min-height:48px;color:var(--text);cursor:pointer;border-radius:12px;font-weight:600;transition:transform .2s,box-shadow .2s}.tab-btn.active{background:linear-gradient(120deg, var(--accent-1), color-mix(in oklab, var(--accent-1), var(--accent-2) 30%));color:#fff;box-shadow:0 10px 22px color-mix(in oklab, var(--accent-1), transparent 70%)}.tab-btn:active{transform:scale(.98)}.ghost-btn,.primary-btn,.secondary-btn,.icon-button{border:1px solid var(--line);background:linear-gradient(150deg, var(--surface-soft), color-mix(in oklab, var(--surface-soft), #fff 12%));color:var(--text);cursor:pointer;min-height:46px;box-shadow:var(--shadow-float);border-radius:14px;align-items:center;gap:6px;padding:12px;transition:transform .18s,filter .18s;display:inline-flex}.primary-btn{background:linear-gradient(130deg, var(--accent-1), color-mix(in oklab, var(--accent-1), var(--accent-2) 26%));border-color:var(--accent-1);color:#fff;justify-content:center;font-weight:600}.secondary-btn{background:color-mix(in oklab, var(--accent-1), var(--surface) 82%)}.icon-button{justify-content:center;width:46px;height:46px;padding:0}.danger{color:var(--danger)}.ghost-btn:hover,.primary-btn:hover,.secondary-btn:hover,.icon-button:hover{filter:brightness(1.05)}.ghost-btn:active,.primary-btn:active,.secondary-btn:active,.icon-button:active{transform:scale(.97)}.target-stage{justify-items:center;gap:12px;display:grid}.kcal-core{border:1px solid var(--line);background:linear-gradient(145deg, var(--surface-soft), color-mix(in oklab, var(--surface-soft), #fff 18%));width:156px;height:156px;box-shadow:inset 0 4px 10px #fff9, var(--shadow-float);border-radius:50%;align-content:center;justify-items:center;gap:4px;display:grid;position:relative;overflow:hidden}.kcal-core strong{font-size:2rem;line-height:1}.kcal-core span{color:var(--muted);font-size:.8rem}.kcal-ring{--fill:0%;background:conic-gradient(from 180deg, var(--accent-1), var(--accent-2) var(--fill), transparent var(--fill)) border-box;opacity:.95;border:7px solid #0000;border-radius:999px;position:absolute;inset:0;-webkit-mask:radial-gradient(circle,#0000 68px,#000 69px);mask:radial-gradient(circle,#0000 68px,#000 69px)}.glass-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;display:grid}.glass-card{border:1px solid var(--line);background:linear-gradient(145deg, var(--surface-soft), color-mix(in oklab, var(--surface-soft), #fff 14%));box-shadow:var(--shadow-float);border-radius:16px;justify-items:center;gap:7px;padding:10px 8px;display:grid}.glass{border:2px solid color-mix(in oklab, var(--text), transparent 70%);background:color-mix(in oklab, var(--surface), transparent 15%);border-top:none;border-radius:0 0 16px 16px;width:42px;height:78px;position:relative;overflow:hidden}.liquid{border-radius:6px 6px 12px 12px;transition:height .35s;position:absolute;bottom:0;left:0;right:0}.liquid.protein{background:linear-gradient(#f472b6,#ec4899)}.liquid.carbs{background:linear-gradient(#60a5fa,#2563eb)}.liquid.fat{background:linear-gradient(#fbbf24,#f97316)}.glass-card strong{font-size:.82rem}.glass-card span{color:var(--muted);text-align:center;font-size:.74rem}.target-note,.api-note{margin-top:10px;font-size:.82rem}.micro-link-btn{border:1px solid var(--line);background:linear-gradient(120deg, color-mix(in oklab, var(--accent-1), var(--surface) 84%), var(--surface-soft));width:100%;min-height:46px;color:var(--text);cursor:pointer;box-shadow:var(--shadow-float);border-radius:12px;margin-top:10px;font-weight:600}.search-controls{gap:10px;margin-top:10px;display:grid}.input-row{border:1px solid var(--line);background:linear-gradient(140deg, var(--surface-soft), color-mix(in oklab, var(--surface-soft), #fff 8%));border-radius:12px;align-items:center;gap:8px;padding:0 12px;display:flex}.input-row input,select,.measurement-form input{width:100%;color:var(--text);background:0 0;border:none;outline:none;min-height:42px}select{border:1px solid var(--line);background:linear-gradient(140deg, var(--surface-soft), color-mix(in oklab, var(--surface-soft), #fff 8%));border-radius:12px;padding:0 12px}.search-results{gap:10px;margin-top:12px;display:grid}.food-card{border:1px solid var(--line);background:linear-gradient(140deg, var(--surface-soft), color-mix(in oklab, var(--surface-soft), #fff 12%));box-shadow:var(--shadow-float);border-radius:16px;gap:10px;padding:12px;display:grid}.food-card h3{font-size:1rem}.food-card small{color:var(--muted)}.food-actions{grid-template-columns:1fr 92px auto;align-items:end;gap:8px;display:grid}.food-actions input{border:1px solid var(--line);background:var(--surface);border-radius:10px;min-height:36px;padding:0 10px}.meals-grid{gap:12px;display:grid}.meal-card h2{margin-bottom:10px;font-size:1.02rem}.entry-row{border-top:1px solid var(--line);background:color-mix(in oklab, var(--surface-soft), transparent 22%);border-radius:12px;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;padding:10px;display:flex}.entry-row strong{font-size:.94rem}.entry-row p{font-size:.85rem}.section-title{justify-content:space-between;align-items:center;display:flex}.measurement-form{gap:8px;margin-top:10px;display:grid}.measurement-form input{border:1px solid var(--line);background:linear-gradient(140deg, var(--surface-soft), color-mix(in oklab, var(--surface-soft), #fff 8%));border-radius:12px;padding:0 10px}.charts-grid{gap:10px;margin-top:12px;display:grid}.chart-box{border:1px solid var(--line);background:linear-gradient(145deg, var(--surface-soft), color-mix(in oklab, var(--surface-soft), #fff 12%));box-shadow:var(--shadow-float);border-radius:18px;padding:12px}.chart-box h3{margin-bottom:8px;font-size:.95rem}.muted{color:var(--muted);margin:0}.error{color:var(--danger)}.lock-shell{align-content:center}.lock-card{padding:18px}.lock-form{gap:8px;margin-top:14px;display:grid}.lock-form label{color:var(--muted);font-size:.83rem}.lock-form input{border:1px solid var(--line);background:linear-gradient(140deg, var(--surface-soft), color-mix(in oklab, var(--surface-soft), #fff 8%));min-height:46px;color:var(--text);border-radius:12px;outline:none;padding:0 12px}.lock-form .error{margin-top:2px}.date-hint{margin-top:8px;font-size:.82rem}.micros-page .section-title{margin-bottom:6px}.micros-grid{gap:10px;margin-top:12px;display:grid}.micro-card{border:1px solid var(--line);background:linear-gradient(145deg, var(--surface-soft), color-mix(in oklab, var(--surface-soft), #fff 14%));box-shadow:var(--shadow-float);border-radius:16px;padding:12px}.micro-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.micro-head strong{font-size:.95rem}.micro-head span{color:var(--muted);font-size:.84rem}.micro-track{background:color-mix(in oklab, var(--surface), #fff 20%);border-radius:999px;height:10px;margin-bottom:6px;overflow:hidden}.micro-fill{border-radius:inherit;height:100%}.micro-card p{margin:0;font-size:.8rem}@media (width>=1024px){.app-shell{gap:17px;width:min(1120px,100%);padding:24px 18px 40px}.topbar{padding:10px 12px;position:static}.search-controls{grid-template-columns:1fr 240px 140px;align-items:stretch}.kcal-core{width:180px;height:180px}.meals-grid,.charts-grid,.micros-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
