@import "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&display=swap";:root{--font-heading:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display:"Cormorant Garamond", "Playfair Display", Georgia, "Times New Roman", serif;--bg-darkest:#f8f9fa;--bg-main:#fff;--bg-card:#fff;--bg-card-hover:#f9fafb;--bg-surface:#f3f4f6;--bg-surface-elevated:#fff;--bg-sidebar:#ffffffd9;--border-subtle:#e5e7eb;--border-medium:#d1d5db;--border-bright:#9ca3af;--emerald-primary:#059669;--emerald-light:#10b981;--emerald-dark:#047857;--emerald-glow:#10b98126;--emerald-surface:#ecfdf5;--amber-warm:#d97706;--amber-surface:#fffbeb;--blue-protein:#0284c7;--blue-surface:#f0f9ff;--purple-fat:#7c3aed;--purple-surface:#f5f3ff;--rose-alert:#dc2626;--rose-surface:#fef2f2;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--text-dim:#94a3b8;--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 12px -2px #0000000f, 0 2px 4px -2px #00000008;--shadow-lg:0 12px 28px -4px #00000014, 0 4px 12px -2px #0000000a;--shadow-xl:0 20px 40px -8px #0000001f;--shadow-card:0 1px 2px #1018280a, 0 8px 24px -8px #1018281a;--shadow-float:0 2px 4px #1018280a, 0 20px 44px -12px #1018282e;--gradient-primary:linear-gradient(135deg, var(--emerald-light) 0%, var(--emerald-dark) 100%);--card-sheen:#ffffff8c;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-smooth:.25s cubic-bezier(.16, 1, .3, 1)}[data-theme=dark]{--bg-darkest:#09090b;--bg-main:#121214;--bg-card:#18181b;--bg-card-hover:#222226;--bg-surface:#1c1c20;--bg-surface-elevated:#27272a;--bg-sidebar:#121214d9;--border-subtle:#27272a;--border-medium:#3f3f46;--border-bright:#52525b;--emerald-primary:#10b981;--emerald-light:#34d399;--emerald-dark:#059669;--emerald-glow:#10b98133;--emerald-surface:#10b9811f;--amber-warm:#f59e0b;--amber-surface:#f59e0b1f;--blue-protein:#38bdf8;--blue-surface:#38bdf81f;--purple-fat:#a78bfa;--purple-surface:#a78bfa1f;--rose-alert:#ef4444;--rose-surface:#ef44441f;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--text-dim:#64748b;--shadow-sm:0 1px 2px 0 #0006;--shadow-md:0 4px 14px -2px #00000080;--shadow-lg:0 16px 36px -4px #0009;--shadow-xl:0 24px 48px -6px #000000bf;--shadow-card:0 1px 2px #00000080, 0 10px 28px -10px #0009;--shadow-float:0 2px 6px #00000080, 0 24px 52px -12px #000c;--gradient-primary:linear-gradient(135deg, var(--emerald-primary) 0%, var(--emerald-dark) 100%);--card-sheen:#ffffff0d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html,body{background-color:var(--bg-darkest);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;transition:background-color var(--transition-fast), color var(--transition-fast);font-size:14px;line-height:1.5}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}::selection{color:var(--text-primary);background:#10b98147}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-primary);letter-spacing:-.02em;font-weight:700;line-height:1.25}p{color:var(--text-secondary)}a{color:inherit;text-decoration:none}button{font-family:var(--font-body);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;background:0 0;border:none;outline:none;justify-content:center;align-items:center;gap:8px;display:inline-flex}button:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:linear-gradient(180deg, var(--emerald-light) 0%, var(--emerald-primary) 100%);color:#fff;border-radius:var(--radius-md);box-shadow:0 1px 2px #04785759, 0 6px 18px -4px var(--emerald-glow);padding:10px 20px;font-size:14px;font-weight:600}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg, var(--emerald-light) 0%, var(--emerald-dark) 100%);box-shadow:0 2px 4px #04785759, 0 10px 26px -6px var(--emerald-glow);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)scale(.98)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border-radius:var(--radius-md);border:1px solid var(--border-subtle);padding:10px 18px;font-size:14px;font-weight:600}.btn-secondary:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--border-medium);transform:translateY(-1px)}.btn-outline{color:var(--text-primary);border-radius:var(--radius-md);border:1px solid var(--border-medium);background:0 0;padding:9px 18px;font-size:14px;font-weight:600}.btn-outline:hover:not(:disabled){background:var(--bg-surface);border-color:var(--text-secondary)}.btn-ghost{color:var(--text-secondary);border-radius:var(--radius-sm);background:0 0;padding:8px 14px;font-size:14px;font-weight:600}.btn-ghost:hover:not(:disabled){background:var(--bg-surface);color:var(--text-primary)}.btn-danger{background:var(--rose-surface);color:var(--rose-alert);border-radius:var(--radius-md);border:1px solid #ef444433;padding:10px 18px;font-size:14px;font-weight:600}.btn-danger:hover:not(:disabled){background:var(--rose-alert);color:#fff}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:border-color var(--transition-fast), box-shadow var(--transition-smooth), transform var(--transition-smooth);padding:24px;position:relative}.card:before{content:"";border-radius:inherit;background:linear-gradient(180deg, var(--card-sheen), transparent 24%);opacity:.6;pointer-events:none;position:absolute;inset:0}.card-hover:hover{border-color:var(--border-medium);box-shadow:var(--shadow-float);transform:translateY(-3px)}.badge{border-radius:var(--radius-full);white-space:nowrap;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.badge-emerald{background:var(--emerald-surface);color:var(--emerald-primary)}.badge-amber{background:var(--amber-surface);color:var(--amber-warm)}.badge-blue{background:var(--blue-surface);color:var(--blue-protein)}.badge-purple{background:var(--purple-surface);color:var(--purple-fat)}.badge-neutral{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-subtle)}.chip{border-radius:var(--radius-full);background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:500;display:inline-flex}.chip:hover{border-color:var(--emerald-light);color:var(--text-primary)}.chip.active{background:var(--emerald-surface);border-color:var(--emerald-primary);color:var(--emerald-primary);font-weight:600}.input-label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.input-field{width:100%;font-size:14px;font-family:var(--font-body);border-radius:var(--radius-md);border:1px solid var(--border-medium);background:var(--bg-card);color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:10px 14px;box-shadow:inset 0 1px 2px #0000000a}.input-field:hover{border-color:var(--border-bright)}.input-field:focus{border-color:var(--emerald-primary);box-shadow:0 0 0 3px var(--emerald-glow);outline:none}.custom-range{appearance:none;border-radius:var(--radius-full);background:var(--border-medium);outline:none;width:100%;height:6px}.custom-range::-webkit-slider-thumb{appearance:none;background:var(--emerald-primary);cursor:pointer;width:18px;height:18px;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast);border:2px solid #fff;border-radius:50%}.custom-range::-webkit-slider-thumb:hover{transform:scale(1.15)}.toggle-switch{width:44px;height:24px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background-color:var(--border-medium);border-radius:var(--radius-full);transition:var(--transition-fast);position:absolute;inset:0}.toggle-slider:before{content:"";width:18px;height:18px;transition:var(--transition-fast);background-color:#fff;border-radius:50%;position:absolute;bottom:3px;left:3px;box-shadow:0 1px 3px #0003}input:checked+.toggle-slider{background-color:var(--emerald-primary)}input:checked+.toggle-slider:before{transform:translate(20px)}.modal-overlay{-webkit-backdrop-filter:blur(10px)saturate(1.4);z-index:100;background:#00000073;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:100%;max-width:580px;max-height:90vh;box-shadow:var(--shadow-float);padding:28px;animation:.25s cubic-bezier(.16,1,.3,1) slideUp;overflow-y:auto}.drawer-overlay{-webkit-backdrop-filter:blur(8px)saturate(1.3);z-index:100;background:#0006;justify-content:flex-end;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.drawer-content{background:var(--bg-card);border-left:1px solid var(--border-subtle);width:100%;max-width:480px;height:100%;box-shadow:var(--shadow-xl);flex-direction:column;padding:32px 24px;animation:.3s cubic-bezier(.16,1,.3,1) slideInRight;display:flex;overflow-y:auto}.skeleton{background:linear-gradient(90deg, var(--border-subtle) 25%, var(--bg-surface) 50%, var(--border-subtle) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes pageIn{0%{opacity:0;filter:blur(7px);transform:translateY(18px)scale(.995)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}.page-enter{animation:.55s cubic-bezier(.16,1,.3,1) both pageIn}.app-shell{background-color:var(--bg-darkest);height:100vh;display:flex;overflow:hidden}.app-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.app-content{background:radial-gradient(1100px 480px at 88% -12%, var(--emerald-glow), transparent 62%), radial-gradient(900px 420px at -8% 8%, #38bdf812, transparent 60%), var(--bg-darkest);flex:1;padding:32px 40px 64px;overflow-y:auto}@media (width<=768px){.app-content{padding:20px 16px 112px}}.brand-title{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--text-primary);font-weight:800;line-height:1.1}.brand-subtitle{color:var(--text-muted);margin-top:2px;font-weight:600;display:block}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(20px)saturate(1.5);flex-direction:column;width:264px;min-width:264px;height:100%;padding:24px 16px;display:flex;overflow-y:auto}.sidebar-header{align-items:center;gap:10px;padding:0 8px;display:flex}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding-bottom:12px;display:flex;overflow-y:auto}.sidebar-link{border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-smooth);align-items:center;gap:12px;padding:10px 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.sidebar-link:hover{background:var(--bg-surface);color:var(--text-primary);transform:translate(3px)}.sidebar-link.active{background:var(--gradient-primary);color:#fff;box-shadow:0 6px 18px -6px var(--emerald-glow);font-weight:700}.sidebar-link.active:hover{background:var(--gradient-primary);color:#fff;transform:translate(3px)}.sidebar-footer{border-top:1px solid var(--border-subtle);flex-direction:column;gap:10px;margin-top:auto;padding-top:16px;display:flex}.user-info{border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-subtle);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);align-items:center;gap:10px;padding:10px;text-decoration:none;display:flex}.user-info:hover{border-color:var(--border-medium);box-shadow:var(--shadow-sm)}.user-info .details{flex-direction:column;gap:1px;min-width:0;display:flex}.user-info .name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.user-info .status{color:var(--emerald-primary);font-size:11px;font-weight:600}.logout-btn{border-radius:var(--radius-md);width:100%;color:var(--text-muted);transition:background var(--transition-fast), color var(--transition-fast);justify-content:center;align-items:center;gap:8px;padding:10px 12px;font-size:13px;font-weight:600;display:flex}.logout-btn:hover{background:var(--rose-surface);color:var(--rose-alert)}@media (width<=1024px){.sidebar{width:228px;min-width:228px}}@media (width<=768px){.sidebar{display:none}}.hidden{display:none!important}.flex{display:flex}.inline-block{display:inline-block}.flex-shrink-0{flex-shrink:0}.font-semibold{font-weight:600}.w-1\.5{width:6px}.h-1\.5{height:6px}.w-4{width:16px}.h-4{height:16px}.w-6{width:24px}.h-6{height:24px}.w-8{width:32px}.h-8{height:32px}.mb-3{margin-bottom:12px}.gap-1\.5{gap:6px}.gap-2{gap:8px}.gap-2\.5{gap:10px}.text-xs{font-size:12px}.text-sm{font-size:14px}.text-base{font-size:16px}.py-1\.5{padding-top:6px;padding-bottom:6px}.py-2\.5{padding-top:10px;padding-bottom:10px}.py-3{padding-top:12px;padding-bottom:12px}.px-3{padding-left:12px;padding-right:12px}.px-4{padding-left:16px;padding-right:16px}.px-6{padding-left:24px;padding-right:24px}.rounded-lg{border-radius:10px}.rounded-xl{border-radius:14px}.rounded-full{border-radius:9999px}.bg-current{background-color:currentColor}.opacity-80{opacity:.8}.border-2{border:2px solid #0000}.border-3{border:3px solid #0000}.border-current{border-color:currentColor}.border-t-transparent{border-top-color:#0000}.border-emerald-500,.border-emerald-600{border-color:var(--emerald-primary)}.border-gray-300{border-color:var(--border-medium)}.bg-emerald-50{background-color:var(--emerald-surface)}.text-emerald-700{color:var(--emerald-primary)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:.9s linear infinite spin}@media (width>=768px){.md\:block{display:block!important}.md\:flex{display:flex!important}.md\:hidden{display:none!important}}@media (width>=1024px){.lg\:flex{display:flex!important}.lg\:hidden{display:none!important}}@media (width>=1280px){.xl\:flex{display:flex!important}}:focus-visible{outline:2px solid var(--emerald-primary);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.landing-grid{background-image:linear-gradient(to right, var(--border-subtle) 1px, transparent 1px), linear-gradient(to bottom, var(--border-subtle) 1px, transparent 1px);background-size:54px 54px;-webkit-mask-image:radial-gradient(78% 62% at 50% 0,#000 32%,#0000 78%);mask-image:radial-gradient(78% 62% at 50% 0,#000 32%,#0000 78%)}.landing-grid.spotlight{-webkit-mask-image:radial-gradient(ellipse 78% 62% at 50% 0%, #000 32%, transparent 78%), radial-gradient(230px 230px at var(--cursor-x,50%) var(--cursor-y,30%), #000000d9 0%, transparent 70%);-webkit-mask-image:radial-gradient(ellipse 78% 62% at 50% 0%, #000 32%, transparent 78%), radial-gradient(230px 230px at var(--cursor-x,50%) var(--cursor-y,30%), #000000d9 0%, transparent 70%);mask-image:radial-gradient(ellipse 78% 62% at 50% 0%, #000 32%, transparent 78%), radial-gradient(230px 230px at var(--cursor-x,50%) var(--cursor-y,30%), #000000d9 0%, transparent 70%);-webkit-mask-composite:source-over;-webkit-mask-composite:source-over;mask-composite:add}.cursor-glow{pointer-events:none;opacity:0;will-change:transform;background:radial-gradient(closest-side,#10b9811f,#38bdf80d 45%,#0000 72%);border-radius:50%;width:360px;height:360px;transition:opacity .35s;position:absolute;top:0;left:0}@media (hover:none){.cursor-glow{display:none}}.landing-gradient-text{background:linear-gradient(105deg,#059669 0%,#10b981 45%,#0ea5e9 100%);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}.landing-app-grid{grid-template-columns:1.55fr 1fr;display:grid}@media (width<=768px){.landing-app-grid{grid-template-columns:1fr}}.landing-bento{grid-template-columns:repeat(6,1fr);gap:20px;display:grid}.landing-bento>*{min-width:0}.bento-2{grid-column:span 2}.bento-4{grid-column:span 4}@media (width<=900px){.landing-bento{grid-template-columns:1fr}.bento-2,.bento-4{grid-column:span 1}}@keyframes riseIn{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes glowPulse{0%,to{opacity:.55}50%{opacity:1}}.landing-rise{animation:.7s cubic-bezier(.16,1,.3,1) both riseIn}.landing-rise-1{animation:.7s cubic-bezier(.16,1,.3,1) 70ms both riseIn}.landing-rise-2{animation:.7s cubic-bezier(.16,1,.3,1) .14s both riseIn}.landing-rise-3{animation:.7s cubic-bezier(.16,1,.3,1) .21s both riseIn}.landing-rise-4{animation:.75s cubic-bezier(.16,1,.3,1) .28s both riseIn}.landing-float{animation:6s ease-in-out infinite floatY}.landing-float-slow{animation:8.5s ease-in-out infinite floatY}.landing-glow{animation:5s ease-in-out infinite glowPulse}.toast-container{z-index:200;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:88px;left:50%;transform:translate(-50%)}@media (width>=768px){.toast-container{bottom:28px}}.toast-item{pointer-events:auto;border-radius:var(--radius-lg);background:var(--bg-surface-elevated);color:var(--text-primary);border:1px solid var(--border-subtle);box-shadow:var(--shadow-xl);align-items:center;gap:10px;padding:12px 18px;font-size:13px;font-weight:600;animation:.25s cubic-bezier(.16,1,.3,1) toastIn;display:flex}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.display-serif{font-family:var(--font-display);letter-spacing:-.015em;font-size:1.06em;font-style:italic;font-weight:500}.text-balance{text-wrap:balance}.reveal{opacity:0;filter:blur();transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1),filter .9s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0s);will-change:opacity, transform;transform:translateY(0)}.reveal.is-visible{opacity:1;filter:none;transform:none}.reveal-fade-up{transform:translateY(44px)}.reveal-fade-down{transform:translateY(-32px)}.reveal-fade-left{transform:translate(52px)}.reveal-fade-right{transform:translate(-52px)}.reveal-scale{transform:scale(.92)}.reveal-blur{filter:blur(14px);transform:translateY(24px)}.btn-primary{position:relative;overflow:hidden}.btn-primary:after{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 20%,#ffffff6b 50%,#0000 80%);width:55%;height:100%;transition:left .7s cubic-bezier(.16,1,.3,1);position:absolute;top:0;left:-130%;transform:skew(-18deg)}.btn-primary:hover:after{left:150%}.nav-link{padding-bottom:2px;display:inline-block;position:relative}.nav-link:after{content:"";border-radius:var(--radius-full);background:var(--gradient-primary);transform-origin:0;height:2px;transition:transform var(--transition-smooth);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.nav-link:hover:after,.nav-link.active:after{transform:scaleX(1)}.chip:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.card-hover:hover:before{opacity:1}.card-hover:hover{background:var(--bg-card-hover)}.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.marquee-track{width:max-content;animation:38s linear infinite marquee;display:flex}.marquee-track:hover{animation-play-state:paused}.marquee-group{align-items:center;gap:56px;padding-right:56px;display:flex}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.landing-hero-visual{will-change:transform}.public-header{transition:height var(--transition-smooth), background-color var(--transition-smooth), box-shadow var(--transition-smooth), border-color var(--transition-smooth)}.public-header.scrolled{background:var(--bg-sidebar);height:60px;box-shadow:0 10px 32px -18px #00000040}.app-content{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html,.app-content{scroll-behavior:auto!important}.reveal{opacity:1!important;filter:none!important;transform:none!important}}
