:root{--color-primary: #10b981;--color-primary-light: #34d399;--color-primary-dark: #059669;--color-primary-50: #ecfdf5;--color-primary-100: #d1fae5;--color-primary-200: #a7f3d0;--color-primary-500: #10b981;--color-primary-600: #059669;--color-primary-300: #6ee7b7;--color-primary-700: #047857;--color-primary-800: #065f46;--color-primary-darker: #047857;--color-secondary: #3b82f6;--color-secondary-light: #60a5fa;--color-secondary-dark: #2563eb;--color-secondary-50: #eff6ff;--color-secondary-100: #dbeafe;--color-white: #ffffff;--color-black: #000000;--color-gray-50: #fafafa;--color-gray-100: #f4f4f5;--color-gray-200: #e4e4e7;--color-gray-300: #d4d4d8;--color-gray-400: #a1a1aa;--color-gray-500: #71717a;--color-gray-600: #52525b;--color-gray-700: #3f3f46;--color-gray-800: #27272a;--color-gray-900: #18181b;--color-gray-950: #09090b;--color-success: #10b981;--color-success-light: #ecfdf5;--color-success-dark: #059669;--color-warning: #f59e0b;--color-warning-light: #fffbeb;--color-warning-dark: #d97706;--color-error: #ef4444;--color-error-light: #fef2f2;--color-error-dark: #dc2626;--color-info: #3b82f6;--color-info-light: #eff6ff;--color-info-dark: #2563eb;--color-protein: #8b5cf6;--color-protein-light: #ede9fe;--color-protein-dark: #7c3aed;--color-carbs: #f59e0b;--color-carbs-light: #fffbeb;--color-carbs-dark: #d97706;--color-fat: #ef4444;--color-fat-light: #fef2f2;--color-fat-dark: #dc2626;--color-fiber: #22c55e;--color-fiber-light: #f0fdf4;--color-fiber-dark: #16a34a;--color-calories: #f97316;--color-calories-light: #fff7ed;--color-calories-dark: #ea580c;--color-water: #06b6d4;--color-water-light: #ecfeff;--color-water-dark: #0891b2;--color-alcohol: #ec4899;--color-alcohol-light: #fdf2f8;--color-alcohol-dark: #db2777;--color-text-primary: #18181b;--color-text-secondary: #3f3f46;--color-text-muted: #71717a;--color-text-light: #a1a1aa;--color-text-inverse: #ffffff;--color-bg-primary: #ffffff;--color-bg-secondary: #fafafa;--color-bg-tertiary: #f4f4f5;--color-bg-dark: #18181b;--color-bg-dark-secondary: #27272a;--color-border: #e4e4e7;--color-border-light: #f4f4f5;--color-border-dark: #d4d4d8;--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;--font-family-heading: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;--font-family-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-size-6xl: 3.75rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.2;--line-height-snug: 1.375;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 1.75;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0;--letter-spacing-wide: .025em;--letter-spacing-wider: .05em;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-32: 8rem;--container-max-width: 1200px;--container-padding: 1.5rem;--container-padding-mobile: 1rem;--container-padding-sm: 1.25rem;--section-padding-y: 5rem;--section-padding-y-mobile: 3rem;--sidebar-width: 260px;--sidebar-width-collapsed: 72px;--topbar-height: 64px;--page-padding: 2rem;--page-padding-tablet: 1.5rem;--page-padding-mobile: 1rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.25rem;--radius-3xl: 1.5rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .05), 0 1px 3px rgba(0, 0, 0, .03);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .06), 0 2px 8px rgba(0, 0, 0, .03);--shadow-xl: 0 16px 40px rgba(0, 0, 0, .07), 0 4px 12px rgba(0, 0, 0, .03);--shadow-2xl: 0 24px 56px rgba(0, 0, 0, .08);--shadow-card: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .02);--shadow-card-hover: 0 8px 24px rgba(0, 0, 0, .06), 0 2px 6px rgba(0, 0, 0, .03);--shadow-ring-primary: 0 0 0 3px rgba(16, 185, 129, .12);--shadow-ring-error: 0 0 0 3px rgba(239, 68, 68, .12);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .35s ease;--transition-spring: .3s cubic-bezier(.34, 1.56, .64, 1);--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-toast: 600;--color-dash-bg: #f7f6f1;--color-dash-card: #ffffff;--color-dash-card-alt: #fbfaf5;--color-dash-ink: #111614;--color-dash-ink-soft: #565d5a;--color-dash-ink-faint: #9da39f;--color-dash-border: #e8e5dd;--color-dash-green: #19b27a;--color-dash-green-dark: #0e7a52;--color-dash-green-soft: #e0f2e9;--color-dash-amber: #f5a524;--color-dash-coral: #e86a5c;--color-dash-coral-soft: #fce5e2;--color-dash-lilac: #9b7be8;--color-dash-blue: #5b8def;--color-dash-blue-soft: #eef2fd;--color-sidebar-bg: #111311;--color-sidebar-ink: #e8eeea;--color-sidebar-faint: #7a8580;--font-family-serif: "Fraunces", Georgia, serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}lucide-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:0}lucide-icon svg{display:block}html{font-size:16px;line-height:var(--line-height-normal);scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-family-base);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);background-color:var(--color-bg-primary);font-weight:var(--font-weight-normal);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11"}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-heading);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text-primary);margin-bottom:var(--space-4)}h1{font-size:var(--font-size-5xl);letter-spacing:var(--letter-spacing-tight)}h2{font-size:var(--font-size-4xl);letter-spacing:var(--letter-spacing-tight)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{margin-bottom:var(--space-4);line-height:var(--line-height-loose)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark)}img{max-width:100%;height:auto;display:block}.container{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding)}@media (max-width: 768px){.container{padding:0 var(--container-padding-sm)}}@media (max-width: 480px){.container{padding:0 var(--container-padding-mobile)}}.animate-in{opacity:1!important;transform:translateY(0)!important}.loading{opacity:.6;pointer-events:none}.disabled{opacity:.5;cursor:not-allowed}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}::selection{background:#10b9811f;color:var(--color-text-primary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}*{scrollbar-width:thin;scrollbar-color:var(--color-gray-300) transparent}@media (max-width: 768px){h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}}@media (max-width: 480px){h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}}.card{background:var(--color-white);border:1px solid var(--color-border-light);border-radius:var(--radius-xl);padding:var(--space-6);transition:box-shadow var(--transition-base),border-color var(--transition-base)}.card--interactive{background:var(--color-white);border:1px solid var(--color-border-light);border-radius:var(--radius-xl);padding:var(--space-6);transition:box-shadow var(--transition-base),border-color var(--transition-base);cursor:pointer}.card--interactive:hover{box-shadow:var(--shadow-card-hover);border-color:var(--color-border)}.card--interactive:active{box-shadow:var(--shadow-sm)}.card--elevated{background:var(--color-white);border:1px solid transparent;border-radius:var(--radius-xl);padding:var(--space-6);transition:box-shadow var(--transition-base),border-color var(--transition-base);box-shadow:var(--shadow-card)}.card--compact{background:var(--color-white);border:1px solid var(--color-border-light);border-radius:var(--radius-xl);padding:var(--space-4) var(--space-5);transition:box-shadow var(--transition-base),border-color var(--transition-base)}.card--hero{background:linear-gradient(135deg,var(--color-primary-50),var(--color-white) 60%);border:1px solid var(--color-primary-200);border-radius:var(--radius-2xl);padding:var(--space-8);transition:box-shadow var(--transition-base),border-color var(--transition-base)}@media (max-width: 480px){.card--hero{padding:var(--space-6)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-family-base);font-weight:var(--font-weight-semibold);text-decoration:none;border:none;cursor:pointer;transition:all var(--transition-base);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-6);font-size:var(--font-size-sm)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--sm{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm)}.btn--lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-base)}.btn--primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-family-base);font-weight:var(--font-weight-semibold);text-decoration:none;border:none;cursor:pointer;transition:all var(--transition-base);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-6);font-size:var(--font-size-sm);background:var(--color-primary);color:var(--color-white)}.btn--primary:disabled{opacity:.5;cursor:not-allowed}.btn--primary:hover:not(:disabled){background:var(--color-primary-dark);box-shadow:var(--shadow-md)}.btn--primary:active:not(:disabled){background:var(--color-primary-700)}.btn--secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-family-base);font-weight:var(--font-weight-semibold);text-decoration:none;border:1.5px solid var(--color-border);cursor:pointer;transition:all var(--transition-base);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-6);font-size:var(--font-size-sm);background:transparent;color:var(--color-text-primary)}.btn--secondary:disabled{opacity:.5;cursor:not-allowed}.btn--secondary:hover:not(:disabled){background:var(--color-gray-50);border-color:var(--color-border-dark)}.btn--ghost{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-family-base);font-weight:var(--font-weight-semibold);text-decoration:none;border:none;cursor:pointer;transition:all var(--transition-base);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-6);font-size:var(--font-size-sm);background:transparent;color:var(--color-text-muted)}.btn--ghost:disabled{opacity:.5;cursor:not-allowed}.btn--ghost:hover:not(:disabled){background:var(--color-gray-100);color:var(--color-text-primary)}.btn--danger{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-family-base);font-weight:var(--font-weight-semibold);text-decoration:none;border:none;cursor:pointer;transition:all var(--transition-base);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-6);font-size:var(--font-size-sm);background:var(--color-error);color:var(--color-white)}.btn--danger:disabled{opacity:.5;cursor:not-allowed}.btn--danger:hover:not(:disabled){background:var(--color-error-dark);box-shadow:var(--shadow-md)}.btn--danger:active:not(:disabled){background:#b91c1c}.btn--icon{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-family-base);font-weight:var(--font-weight-semibold);text-decoration:none;border:none;cursor:pointer;transition:all var(--transition-base);border-radius:var(--radius-lg);padding:var(--space-2);background:transparent;color:var(--color-text-muted)}.btn--icon:disabled{opacity:.5;cursor:not-allowed}.btn--icon:hover:not(:disabled){background:var(--color-gray-100);color:var(--color-text-primary)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5)}@media (max-width: 1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr;gap:var(--space-4)}}.stat-card{background:var(--color-white);border:1px solid var(--color-border-light);border-radius:var(--radius-xl);padding:var(--space-6);transition:box-shadow var(--transition-base),border-color var(--transition-base);display:flex;flex-direction:column;gap:var(--space-3)}.stat-card .stat-header{display:flex;align-items:flex-start;justify-content:space-between}.stat-card .stat-value{font-family:var(--font-family-heading);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:1;letter-spacing:var(--letter-spacing-tight);color:var(--color-text-primary);font-variant-numeric:tabular-nums}.stat-card .stat-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);margin-top:var(--space-1)}.stat-card .stat-trend{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.stat-card .stat-trend.up{color:var(--color-success)}.stat-card .stat-trend.down{color:var(--color-error)}.stat-card__header{display:flex;align-items:flex-start;justify-content:space-between}.stat-card__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;border-radius:var(--radius-lg);background:var(--color-primary-50);color:var(--color-primary)}.stat-card__icon lucide-icon,.stat-card__icon svg{width:20px;height:20px}.stat-card__value{font-family:var(--font-family-heading);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:1;letter-spacing:var(--letter-spacing-tight);color:var(--color-text-primary);font-variant-numeric:tabular-nums}@media (max-width: 480px){.stat-card__value{font-size:var(--font-size-2xl)}}.stat-card__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);margin-top:var(--space-1)}.stat-card__trend{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.stat-card__trend--up{color:var(--color-success)}.stat-card__trend--down{color:var(--color-error)}.empty-state{display:flex;flex-direction:column;align-items:center;padding:var(--space-12) var(--space-6);text-align:center;color:var(--color-text-light)}.empty-state svg{margin-bottom:var(--space-4);color:var(--color-gray-300)}.empty-state p{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0 0 var(--space-4);max-width:320px}.empty-state__icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;min-width:56px;border-radius:var(--radius-lg);background:var(--color-gray-100);color:var(--color-gray-400);margin-bottom:var(--space-5)}.empty-state__icon lucide-icon,.empty-state__icon svg{width:28px;height:28px}.empty-state__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.empty-state__text{font-size:var(--font-size-sm);color:var(--color-text-muted);max-width:360px;margin-bottom:var(--space-6)}.loading-state{display:flex;flex-direction:column;align-items:center;padding:var(--space-12) var(--space-6);gap:var(--space-4)}.loading-state__spinner{width:32px;height:32px;border:3px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .8s linear infinite}.loading-state__text{font-size:var(--font-size-sm);color:var(--color-text-muted)}@keyframes spin{to{transform:rotate(360deg)}}.error-state{display:flex;flex-direction:column;align-items:center;padding:var(--space-12) var(--space-6);text-align:center}.error-state__icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;min-width:56px;border-radius:var(--radius-lg);background:var(--color-error-light);color:var(--color-error);margin-bottom:var(--space-5)}.error-state__icon lucide-icon,.error-state__icon svg{width:28px;height:28px}.error-state__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.error-state__text{font-size:var(--font-size-sm);color:var(--color-text-muted);max-width:360px;margin-bottom:var(--space-6)}.search-wrapper{position:relative;max-width:320px}.search-wrapper input{width:100%;padding:var(--space-3) var(--space-4);padding-left:var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-family:var(--font-family-base);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-white);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);box-sizing:border-box}.search-wrapper input::placeholder{color:var(--color-text-light)}.search-wrapper input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-ring-primary)}.search-wrapper input:disabled{background:var(--color-gray-50);color:var(--color-text-light);cursor:not-allowed}.search-wrapper lucide-icon,.search-wrapper .search-wrapper__icon{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);color:var(--color-text-light);pointer-events:none}.search-wrapper--full{max-width:100%}.chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:var(--line-height-normal);background:var(--color-gray-100);color:var(--color-text-secondary)}.chip--primary{background:var(--color-primary-50);color:var(--color-primary-dark)}.chip--success{background:var(--color-success-light);color:var(--color-success-dark)}.chip--warning{background:var(--color-warning-light);color:var(--color-warning-dark)}.chip--error{background:var(--color-error-light);color:var(--color-error-dark)}.chip--info{background:var(--color-info-light);color:var(--color-info-dark)}.chip--removable{padding-right:var(--space-1);cursor:pointer}.chip--removable .chip__remove{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:var(--radius-full);transition:background var(--transition-fast)}.chip--removable .chip__remove:hover{background:#0000001a}.form-group{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-5)}.form-group label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.form-group .error-message{font-size:var(--font-size-xs);color:var(--color-error);margin-top:var(--space-1)}.input-error{border-color:var(--color-error)}.input-error:focus{border-color:var(--color-error);box-shadow:var(--shadow-ring-error)}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast: high){body{background:var(--color-white);color:var(--color-black)}a{color:#00f}a:hover{color:navy}}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}
