@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Sora:wght@400;500;600;700;800&display=swap");:root{--bg-base:#f8fafc;--bg-card:#fff;--bg-input:#f1f5f9;--border:#e2e8f0;--border-light:#f1f5f9;--accent:#7c3aed;--accent-dim:#6d28d9;--accent-glow:rgba(124,58,237,.08);--accent-2:#ec4899;--accent-cyan:#06b6d4;--accent-lime:#84cc16;--purple-main:#7c3aed;--purple-dark:#6d28d9;--pink-main:#ec4899;--pink-dark:#db2777;--lime-main:#84cc16;--lime-dark:#4f7a0e;--lime-light:#f0fdf4;--brand-green:#7c3aed;--brand-orange:#ec4899;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#94a3b8;--danger:#f43f5e;--warning:#f59e0b;--success:#10b981;--radius-sm:12px;--radius-md:20px;--radius-lg:28px;--shadow-card:0 10px 35px rgba(124,58,237,.04),0 1px 3px rgba(0,0,0,.02);--shadow-glow:0 0 25px rgba(124,58,237,.12);--transition:0.3s cubic-bezier(0.34,1.56,0.64,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg-base);font-family:Inter,system-ui,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh}body,h1,h2,h3,h4,h5,h6{color:var(--text-primary)}h1,h2,h3,h4,h5,h6{font-family:Sora,Inter,system-ui,sans-serif;letter-spacing:-.02em}h1{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:800;line-height:1.2}h2{font-size:clamp(1.3rem,3vw,1.8rem);font-weight:700}h3{font-size:1.18rem;font-weight:600}a{color:var(--accent);text-decoration:none;transition:all var(--transition)}a:hover{opacity:.85;transform:scale(1.01)}.container{max-width:1200px;margin:0 auto;padding:0 1.5rem}.page-content{min-height:calc(100vh - 64px);padding:2.5rem 0}.card{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-md);padding:1.75rem;box-shadow:var(--shadow-card);transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition);position:relative;overflow:hidden}.card:hover{border-color:rgba(124,58,237,.25);transform:translateY(-4px);box-shadow:0 15px 40px rgba(124,58,237,.07)}.card-glow{box-shadow:var(--shadow-card),var(--shadow-glow);border-color:rgba(124,58,237,.35)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.65rem;border-radius:100px;font-size:.92rem;font-weight:700;border:none;cursor:pointer;transition:all var(--transition);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-transform:capitalize}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn:active{transform:translateY(2px) scale(.96)!important}.btn-primary{background:linear-gradient(135deg,var(--accent) 0,var(--accent-dim) 100%);color:#fff;box-shadow:0 4px 18px rgba(124,58,237,.28)}.btn-primary:hover:not(:disabled){transform:translateY(-2px) scale(1.03);box-shadow:0 6px 24px rgba(124,58,237,.38)}.btn-pink{background:linear-gradient(135deg,var(--accent-2) 0,#db2777 100%);color:#fff;box-shadow:0 4px 18px rgba(236,72,153,.28)}.btn-pink:hover:not(:disabled){transform:translateY(-2px) scale(1.03);box-shadow:0 6px 24px rgba(236,72,153,.38)}.btn-outline{background:var(--bg-card);border:2px solid var(--border);color:var(--text-primary);box-shadow:0 2px 8px rgba(0,0,0,.02)}.btn-outline:hover:not(:disabled){border-color:var(--accent);color:var(--accent);transform:translateY(-2px) scale(1.03);box-shadow:0 4px 12px rgba(124,58,237,.08)}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 4px 12px rgba(244,63,94,.2)}.btn-danger:hover:not(:disabled){transform:translateY(-2px) scale(1.03)}.btn-sm{padding:.45rem 1.15rem;font-size:.82rem}.btn-lg{padding:.95rem 2.2rem;font-size:1.05rem}.btn-full{width:100%}.form-group{display:flex;flex-direction:column;gap:.45rem}.form-label{font-size:.8rem;font-weight:700;color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase}.form-input,.form-select,.form-textarea{background:var(--bg-input);border:2px solid transparent;border-radius:var(--radius-sm);color:var(--text-primary);font-size:.96rem;font-family:inherit;padding:.75rem 1.1rem;width:100%;transition:all var(--transition);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{background:var(--bg-card);border-color:var(--accent);box-shadow:0 0 0 4px rgba(124,58,237,.15)}.form-input::placeholder{color:var(--text-muted)}.form-select option{background:var(--bg-card)}.form-error{font-size:.8rem;color:var(--danger);font-weight:600}.nav{height:72px;background:hsla(0,0%,100%,.85);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:2px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:100;box-shadow:0 4px 20px rgba(0,0,0,.015)}.nav,.nav-inner{display:flex;align-items:center}.nav-inner{justify-content:space-between;width:100%}.nav-logo{text-decoration:none}.logo-hybrid,.nav-logo{display:flex;align-items:center}.logo-hybrid{gap:.6rem;font-weight:800;font-size:1.5rem;letter-spacing:-.03em;font-family:Sora,sans-serif;line-height:1}.logo-nutri{color:var(--accent)}.logo-aware{color:var(--accent-2)}.logo-hybrid img{background-color:transparent;border-radius:10px;padding:1px}.nav-links{gap:.4rem}.nav-link,.nav-links{display:flex;align-items:center}.nav-link{padding:.55rem 1rem;border-radius:100px;font-size:.9rem;font-weight:600;color:var(--text-secondary);transition:all var(--transition)}.nav-link.active,.nav-link:hover{background:rgba(124,58,237,.06);color:var(--accent)}.nav-link.active{background:rgba(124,58,237,.1);color:var(--accent)}.macro-ring-wrap{display:flex;flex-direction:column;align-items:center;gap:.5rem;transition:transform .2s ease}.macro-ring-wrap:hover{transform:scale(1.05)}.macro-ring svg{transform:rotate(-90deg)}.macro-ring circle{transition:stroke-dashoffset 1s cubic-bezier(.34,1.56,.64,1)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:1.25rem;gap:1.25rem}.stat-card{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-md);padding:1.5rem;display:flex;flex-direction:column;gap:.35rem;transition:all var(--transition)}.stat-card:hover{border-color:rgba(124,58,237,.2);transform:translateY(-3px);box-shadow:0 8px 24px rgba(124,58,237,.05)}.stat-label{font-size:.8rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.stat-value{font-size:1.9rem;font-weight:800;color:var(--text-primary);font-family:Sora,sans-serif;line-height:1.2}.stat-unit{font-size:.88rem;color:var(--text-secondary);font-weight:500}.progress-bar-wrap{display:flex;flex-direction:column;gap:.4rem}.progress-bar-label{display:flex;justify-content:space-between;font-size:.85rem;color:var(--text-secondary);font-weight:600}.progress-bar-track{height:14px;background:var(--bg-input);border-radius:100px;overflow:hidden;border:1px solid rgba(0,0,0,.03)}.progress-bar-fill{height:100%;border-radius:100px;background:linear-gradient(90deg,var(--accent) 0,var(--accent-2) 100%);transition:width 1.2s cubic-bezier(.34,1.56,.64,1);box-shadow:inset 0 2px 4px hsla(0,0%,100%,.25)}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:100px;font-size:.76rem;font-weight:700;letter-spacing:.02em}.badge-green{background:rgba(16,185,129,.12);color:var(--success)}.badge-blue{background:rgba(6,182,212,.12);color:var(--accent-cyan)}.badge-gray{background:var(--bg-input);color:var(--text-secondary)}.badge-red{background:rgba(244,63,94,.12);color:var(--danger)}.badge-purple{background:rgba(124,58,237,.12);color:var(--accent)}.meal-card{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-md);padding:1.2rem 1.5rem;display:flex;align-items:center;gap:1.2rem;transition:all var(--transition)}.meal-card:hover{border-color:var(--accent);transform:translateX(4px);box-shadow:0 6px 20px rgba(124,58,237,.05)}.meal-icon{width:48px;height:48px;background:rgba(124,58,237,.08);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0;border:1px solid rgba(124,58,237,.15)}.meal-info{flex:1 1;min-width:0}.meal-name{font-weight:700;font-size:1rem;color:var(--text-primary);font-family:Sora,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meal-meta{font-size:.82rem;color:var(--text-secondary);font-weight:500}.meal-calories{font-weight:800;color:var(--accent);font-size:.98rem;font-family:Sora,sans-serif}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:.85rem;gap:.85rem}@media (max-width:900px){.week-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:580px){.week-grid{grid-template-columns:1fr 1fr}}.day-card{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-md);padding:1.2rem;transition:all var(--transition)}.day-card:hover{transform:translateY(-2px);border-color:var(--accent)}.day-label{font-size:.8rem;font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.85rem}.day-meal{font-size:.8rem;color:var(--text-secondary);padding:.4rem 0;border-bottom:2px solid var(--border-light)}.day-meal:last-child{border-bottom:none}.day-meal strong{display:block;color:var(--text-primary);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toaster-root{font-family:Inter,sans-serif!important}@keyframes float{0%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-6px) rotate(1.5deg)}to{transform:translateY(0) rotate(0deg)}}.floating-buddy{animation:float 4s ease-in-out infinite}@keyframes pulseGlow{0%{box-shadow:0 0 0 0 rgba(236,72,153,.4)}70%{box-shadow:0 0 0 10px rgba(236,72,153,0)}to{box-shadow:0 0 0 0 rgba(236,72,153,0)}}.pulse-glow{animation:pulseGlow 2.5s infinite}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .5s cubic-bezier(.34,1.56,.64,1) both}.fade-up-delay{animation:fadeUp .5s cubic-bezier(.34,1.56,.64,1) .15s both}@keyframes spin{to{transform:rotate(1turn)}}.spinner{width:20px;height:20px;border:3px solid rgba(124,58,237,.15);border-top:3px solid var(--accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.hero-gradient{background:radial-gradient(ellipse at 70% 0,rgba(124,58,237,.08) 0,transparent 60%),radial-gradient(ellipse at 20% 80%,rgba(236,72,153,.06) 0,transparent 50%)}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;background:radial-gradient(ellipse at 60% 10%,rgba(124,58,237,.06) 0,transparent 55%),var(--bg-base)}.auth-card{width:100%;max-width:450px;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-lg);padding:2.75rem 2rem;box-shadow:var(--shadow-card)}.divider{height:2px;background:var(--border-light);margin:1.5rem 0}.grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.25rem;gap:1.25rem}@media (max-width:480px){.grid-2{grid-template-columns:1fr}}.tag-select{display:flex;flex-wrap:wrap;gap:.6rem}.tag-option{padding:.45rem 1.15rem;border-radius:100px;border:2px solid var(--border);font-size:.85rem;font-weight:600;cursor:pointer;color:var(--text-secondary);transition:all var(--transition);-webkit-user-select:none;-moz-user-select:none;user-select:none}.tag-option.selected{background:rgba(124,58,237,.08);border-color:var(--accent);color:var(--accent)}.tag-option:hover:not(.selected){border-color:rgba(124,58,237,.2);color:var(--text-primary)}.empty-state{text-align:center;padding:3.5rem 2rem;color:var(--text-secondary);background:var(--bg-card);border:2px dashed var(--border);border-radius:var(--radius-md)}.empty-state .icon{font-size:3.5rem;margin-bottom:1rem}.empty-state p{margin-bottom:1.5rem;font-weight:500}.mobile-nav{display:none;position:fixed;bottom:0;left:0;width:100%;height:72px;background:hsla(0,0%,100%,.88);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:2px solid var(--border);z-index:1000;justify-content:space-around;align-items:center;padding:0 .75rem env(safe-area-inset-bottom);box-shadow:0 -4px 20px rgba(0,0,0,.02)}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:.15rem;color:var(--text-secondary);text-decoration:none;font-size:.72rem;font-weight:700;transition:all var(--transition);flex:1 1}.mobile-nav-icon{font-size:1.45rem;transition:transform var(--transition)}.mobile-nav-item.active{color:var(--accent)}.mobile-nav-item.active .mobile-nav-icon{transform:translateY(-3px) scale(1.15)}@media (max-width:768px){.mobile-nav{display:flex}.nav-links{display:none}body{padding-bottom:84px}.page-content{padding:1.75rem 0}}