:root{--primary: #0b6268;--primary-hover: #094f54;--primary-light: rgba(11, 98, 104, .09);--grade-aplus: #1a7a4a;--grade-a: #2d9e5f;--grade-bplus: #4caf72;--grade-b: #7bc67e;--grade-cplus: #f5a623;--grade-c: #e8891d;--grade-dplus: #d45f0a;--grade-d: #c23b1e;--grade-f: #a01c0f;--fat-atherogenic: #c23b1e;--fat-stearic: #f5a623;--fat-mufa: #2d9e5f;--fat-omega3: #0b6268;--fat-omega6: #4a90d9;--fat-mct: #7c4dff;--fat-other: #b0bec5;--danger: #c23b1e;--warning: #f5a623;--success: #2d9e5f;--surface-0: #ffffff;--surface-1: #ffffff;--surface-2: #f6f3ef;--surface-3: #edeae5;--border: #d4cfc8;--border-strong: #c0b9b0;--text: #1a1410;--text-secondary: #4a3f38;--text-muted: #8c7d74;--shadow-sm: 0 1px 3px rgba(26, 20, 16, .07);--shadow-md: 0 4px 12px rgba(26, 20, 16, .09);--shadow-lg: 0 8px 24px rgba(26, 20, 16, .12);--radius-sm: 3px;--radius-md: 5px;--radius-lg: 8px;--radius-xl: 12px;--font-sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", "Fira Code", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--surface-2);color:var(--text);line-height:1.6;min-height:100dvh}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1.1rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:all .15s;border:none;text-decoration:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);text-decoration:none}.btn-secondary{background:var(--surface-3);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border);text-decoration:none}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#a01c0f;text-decoration:none}.btn-ghost{background:none;border:1px solid var(--border);color:var(--text-secondary)}.btn-ghost:hover{background:var(--surface-3);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-lg{padding:.75rem 1.5rem;font-size:1rem}.btn-sm{padding:.35rem .75rem;font-size:.8rem}.card{background:var(--surface-0);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm)}input[type=text],input[type=number],input[type=password],textarea{width:100%;padding:.55rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem;font-family:var(--font-sans);color:var(--text);background:var(--surface-0);transition:border-color .15s;outline:none}input[type=text]:focus,input[type=number]:focus,input[type=password]:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}label{display:block;font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:.35rem}.badge{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:2px;font-size:.75rem;font-weight:600}.grade-badge{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:50%;font-weight:800;font-size:1rem;color:#fff}.alert{padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.875rem;display:flex;align-items:flex-start;gap:.6rem}.alert-warning{background:#f5a6231f;border:1px solid rgba(245,166,35,.4);color:#7a4f00}.alert-error{background:#c23b1e1a;border:1px solid rgba(194,59,30,.3);color:var(--danger)}.alert-info{background:var(--primary-light);border:1px solid rgba(13,115,119,.3);color:var(--primary)}.section-header{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.75rem}.divider{border:none;border-top:1px solid var(--border);margin:1.5rem 0}details summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.9rem;color:var(--text-secondary);padding:.75rem 0}details summary::-webkit-details-marker{display:none}details summary:before{content:"›";font-size:1.1rem;transition:transform .2s;width:1rem;text-align:center}details[open] summary:before{transform:rotate(90deg)}.spinner{width:1.25rem;height:1.25rem;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th{text-align:left;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:.5rem .75rem;border-bottom:1px solid var(--border)}.data-table td{padding:.6rem .75rem;border-bottom:1px solid var(--surface-3);vertical-align:middle}.data-table tr:last-child td{border-bottom:none}.effect-raises{color:var(--danger);font-weight:600}.effect-lowers{color:var(--success);font-weight:600}.effect-neutral{color:var(--text-muted)}.empty-state{text-align:center;padding:3rem 2rem;color:var(--text-muted)}.empty-state h3{font-size:1.1rem;margin-bottom:.5rem;color:var(--text-secondary)}.page-header{margin-bottom:1.5rem}.page-header h1{font-size:1.5rem;font-weight:800;color:var(--text)}.page-header p{font-size:.9rem;color:var(--text-secondary);margin-top:.25rem}.app-shell.svelte-12qhfyh{display:flex;min-height:100dvh}.sidebar.svelte-12qhfyh{width:216px;flex-shrink:0;background:var(--surface-0);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100dvh;overflow-y:auto}.nav-brand.svelte-12qhfyh{display:flex;align-items:center;gap:.6rem;padding:1.25rem;border-bottom:1px solid var(--border);text-decoration:none}.nav-brand.svelte-12qhfyh:hover{text-decoration:none}.nav-logo.svelte-12qhfyh{width:28px;height:28px;background:transparent;color:var(--primary);border-radius:50%;border:2px solid var(--primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex-shrink:0}.nav-logo-text.svelte-12qhfyh{font-weight:700;font-size:.95rem;color:var(--text)}.nav-list.svelte-12qhfyh{list-style:none;padding:.75rem .75rem 0;flex:1;display:flex;flex-direction:column;gap:.125rem}.nav-item.svelte-12qhfyh{display:flex;align-items:center;padding:.5rem .75rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;color:var(--text-secondary);text-decoration:none;transition:all .15s}.nav-item.svelte-12qhfyh:hover{background:var(--surface-3);color:var(--text);text-decoration:none}.nav-item.active.svelte-12qhfyh{color:var(--primary);font-weight:600;border-left:2px solid var(--primary);padding-left:calc(.75rem - 2px)}.api-key-nudge.svelte-12qhfyh{margin:.75rem;padding:.6rem .75rem;background:#f5a6231a;border:1px solid rgba(245,166,35,.35);border-radius:var(--radius-sm)}.nudge-link.svelte-12qhfyh{font-size:.775rem;color:#7a4f00;font-weight:500;text-decoration:none}.nudge-link.svelte-12qhfyh:hover{text-decoration:underline}.nav-footer.svelte-12qhfyh{padding:.875rem .75rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.5rem}.nav-user.svelte-12qhfyh{display:flex;align-items:center;gap:.5rem;min-width:0}.nav-avatar.svelte-12qhfyh{width:26px;height:26px;background:var(--primary-light);color:var(--primary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.7rem;flex-shrink:0}.nav-email.svelte-12qhfyh{font-size:.72rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sign-out-btn.svelte-12qhfyh{font-size:.775rem;color:var(--text-muted);background:none;border:none;cursor:pointer;padding:0;text-align:left;font-family:inherit}.sign-out-btn.svelte-12qhfyh:hover{color:var(--text-secondary)}.main-wrapper.svelte-12qhfyh{flex:1;min-width:0;display:flex;flex-direction:column}.mobile-header.svelte-12qhfyh{display:none;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--surface-0);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.mobile-header.svelte-12qhfyh .nav-brand:where(.svelte-12qhfyh){border-bottom:none;padding:0}.mobile-header-right.svelte-12qhfyh{display:flex;align-items:center}.mobile-api-nudge.svelte-12qhfyh{display:none;padding:.5rem 1rem;background:#f5a6231a;border-bottom:1px solid rgba(245,166,35,.35);text-align:center}.main-content.svelte-12qhfyh{flex:1}.content-inner.svelte-12qhfyh{max-width:820px;margin:0 auto;padding:2rem 1.5rem}.bottom-nav.svelte-12qhfyh{display:none}@media(max-width:640px){.sidebar.svelte-12qhfyh{display:none}.mobile-header.svelte-12qhfyh{display:flex}.mobile-api-nudge.svelte-12qhfyh{display:block}.app-shell.svelte-12qhfyh{flex-direction:column;padding-bottom:60px}.main-wrapper.svelte-12qhfyh{flex:1}.content-inner.svelte-12qhfyh{padding:1.25rem 1rem}.bottom-nav.svelte-12qhfyh{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--surface-0);border-top:1px solid var(--border);z-index:20;height:60px}.bottom-nav-item.svelte-12qhfyh{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;text-decoration:none;color:var(--text-muted);font-size:.65rem;font-weight:500;transition:color .15s;padding:.4rem 0}.bottom-nav-item.svelte-12qhfyh:hover{text-decoration:none;color:var(--text-secondary)}.bottom-nav-item.active.svelte-12qhfyh{color:var(--primary)}.bottom-nav-icon.svelte-12qhfyh{font-size:1.1rem;line-height:1}.bottom-nav-label.svelte-12qhfyh{line-height:1}}
