@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap");:root{--bg-primary:#0b0f17;--bg-secondary:#121824;--bg-card:#182234;--bg-card-hover:#1e2b42;--bg-glass:rgba(18,24,36,0.85);--border-subtle:rgba(255,255,255,0.08);--border-medium:rgba(255,255,255,0.14);--border-focus:#3b82f6;--text-main:#f8fafc;--text-muted:#94a3b8;--text-subtle:#64748b;--accent-primary:#3b82f6;--accent-primary-hover:#2563eb;--accent-success:#10b981;--accent-warning:#f59e0b;--accent-danger:#ef4444;--cat-protein-bg:rgba(244,63,94,0.15);--cat-protein-text:#fb7185;--cat-protein-border:rgba(244,63,94,0.3);--cat-starch-bg:rgba(245,158,11,0.15);--cat-starch-text:#fbbf24;--cat-starch-border:rgba(245,158,11,0.3);--cat-veg-bg:rgba(16,185,129,0.15);--cat-veg-text:#34d399;--cat-veg-border:rgba(16,185,129,0.3);--cat-whole-bg:rgba(99,102,241,0.15);--cat-whole-text:#818cf8;--cat-whole-border:rgba(99,102,241,0.3);--macro-cal:#f97316;--macro-prot:#f43f5e;--macro-carb:#eab308;--macro-fat:#06b6d4;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:22px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.3);--shadow-md:0 4px 12px -2px rgba(0,0,0,0.4);--shadow-lg:0 12px 28px -4px rgba(0,0,0,0.5);--shadow-glow:0 0 25px -5px rgba(59,130,246,0.3)}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;min-height:100vh;background-color:var(--bg-primary);color:var(--text-main);font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}.mono,code,pre{font-family:JetBrains Mono,monospace}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select,textarea{font-family:inherit;color:var(--text-main);background-color:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:10px 14px;font-size:.92rem;transition:all .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px rgba(59,130,246,.2)}.container{max-width:1320px;margin:0 auto;padding:0 24px}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.card:hover{border-color:var(--border-medium)}.card-interactive:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;font-size:.92rem;font-weight:600;border-radius:var(--radius-md);transition:all .18s ease}.btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#ffffff;box-shadow:0 2px 8px rgba(37,99,235,.35)}.btn-primary:hover{background:linear-gradient(135deg,#4f91f8,#1d4ed8);box-shadow:0 4px 14px rgba(37,99,235,.45)}.btn-secondary{background:var(--bg-card);color:var(--text-main);border:1px solid var(--border-subtle)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--border-medium)}.btn-success{background:linear-gradient(135deg,#10b981,#059669);color:#ffffff}.btn-success:hover{background:linear-gradient(135deg,#34d399,#047857)}.btn-danger{background:rgba(239,68,68,.12);color:#f87171;border:1px solid rgba(239,68,68,.25)}.btn-danger:hover{background:rgba(239,68,68,.22)}.btn-sm{padding:6px 12px;font-size:.82rem;border-radius:var(--radius-sm)}.btn-lg{padding:14px 24px;font-size:1.05rem;border-radius:var(--radius-lg)}.badge-category{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-full);font-size:.75rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.badge-category.Protein{background-color:var(--cat-protein-bg);color:var(--cat-protein-text);border:1px solid var(--cat-protein-border)}.badge-category.Starch{background-color:var(--cat-starch-bg);color:var(--cat-starch-text);border:1px solid var(--cat-starch-border)}.badge-category.Vegetable{background-color:var(--cat-veg-bg);color:var(--cat-veg-text);border:1px solid var(--cat-veg-border)}.badge-category.WholeMeal,.badge-category.Whole_Meal,.badge-category[data-cat="Whole Meal"]{background-color:var(--cat-whole-bg);color:var(--cat-whole-text);border:1px solid var(--cat-whole-border)}.macro-pill{display:inline-flex;align-items:baseline;gap:4px;font-size:.8rem;font-weight:600;padding:2px 8px;border-radius:var(--radius-sm);background:rgba(255,255,255,.04)}.macro-pill .value{font-weight:700;font-family:JetBrains Mono,monospace}.macro-pill.cal .value{color:var(--macro-cal)}.macro-pill.prot .value{color:var(--macro-prot)}.macro-pill.carb .value{color:var(--macro-carb)}.macro-pill.fat .value{color:var(--macro-fat)}.modal-overlay{position:fixed;inset:0;background-color:rgba(0,0,0,.75);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:999;display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .15s ease-out}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-xl);width:100%;max-width:680px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);position:relative;animation:scaleUp .18s cubic-bezier(.16,1,.3,1)}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:calc(64px + env(safe-area-inset-bottom, 0px));padding-bottom:env(safe-area-inset-bottom,0);background:rgba(18,24,36,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border-subtle);z-index:100;align-items:center;justify-content:space-around;box-shadow:0 -4px 20px rgba(0,0,0,.4)}.bottom-nav-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-muted);font-size:.68rem;font-weight:600;padding:6px 12px;border-radius:var(--radius-md);transition:all .15s ease;min-width:58px}.bottom-nav-link.active{color:#3b82f6}.bottom-nav-action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-muted);font-size:.68rem;font-weight:600;transform:translateY(-8px)}.bottom-nav-action-btn .action-circle{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#8b5cf6);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 14px rgba(59,130,246,.5);transition:transform .15s ease}.bottom-nav-action-btn:active .action-circle{transform:scale(.92)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (max-width:768px){.desktop-nav{display:none!important}.mobile-bottom-nav{display:flex}.week-day-tabs{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;-webkit-overflow-scrolling:touch}.week-day-tabs>div{min-width:90px;flex-shrink:0;scroll-snap-align:start}main{padding-bottom:calc(80px + env(safe-area-inset-bottom, 0px))!important}.container{padding:0 14px}.modal-overlay{padding:0;align-items:flex-end}.modal-content{border-radius:20px 20px 0 0;max-height:88vh;animation:slideUp .22s cubic-bezier(.16,1,.3,1)}.btn-lg{padding:12px 18px;font-size:.95rem}input,select,textarea{font-size:16px}}